unity, editable mesh】的更多相关文章

一,需求 从fbx载入的模型是不可以在unity里编辑的. 我有一人特殊的需求就是想在unity里为mesh的各顶点K动画. 于是需要自己实现一个可编辑(其实只是顶点可以拖动)的mesh. 二,思路 首先由导入的mesh复制一个新mesh,并将原mesh替换掉,这样是为了以后编辑过程不会破坏原mesh,然后就没有原mesh的事儿了. 假设mesh是一个立方体,则其mesh.vertices会有36个元素,mesh.triangles有12个元素. 我们要创建8个gameObject表示立方体的8…
一个比较简单的需求,不过遇到些坑,记录下. 房间有多个模型,每个模型可能多个SubMesh,点击后,需要能具体到是那个SubMesh,并且在这个SubMesh上显示边缘高光,以及能个性这单个SubMesh对应的Material.如一个桌子的Mesh,其实有二个材质,分别对应二个SubMesh,一个桌面和一个桌脚,点击桌面后,只有这个桌面高光,而不是整个桌子,并且能单独更换这个桌面的Material. 我们知道Unity中,Mesh和Ogre一样,也是可以有多个SubMesh,每个SubMesh有…
0x00 前言 最近和朋友聊天,谈到了Mesh的内存优化问题,他发现开启Model Importer面板上的Mesh Compression选项之后,内存并没有什么变化.事实上,期望开启Mesh Compression后Mesh所占用的内存降低,是对Mesh Compression的作用的误解. 我相信很多同学看到Mesh Compression这个名字之后,也会有类似的误解.因此这篇博客就来聊一聊在Unity中如何对Mesh进行优化,以达到节约内存的目的,并且为何开启了Mesh Compres…
3D模型 通过3D建模软件所建出来的点和面,如以三角形为主的点和面,比如人的脑袋一个球,就是由各种各样的三角形组成的点和面. 点和面以及纹理坐标都是通过3D建模软件建模出来的. Unity会帮我们把模型的信息存到Mesh里面来,Mesh翻译成中文是网格. 顶点,三角形,纹理坐标,法线和切线. 3D建模软件 1:Autodesk 3D Studio Max 支持mac os windows;2: Autodesk 3D Maya 支持windows3: Cinema4D 支持mac os wind…
正确的获取mesh名称的方法: MeshFilter meshFilter=node.GetComponent<MeshFilter>();    string meshName=meshFilter.sharedMesh.name; 错误的获取mesh名称的方法: MeshFilter meshFilter=node.GetComponent<MeshFilter>();    string meshName=meshFilter.mesh.name; 因为meshFilter.…
http://blog.sina.com.cn/s/blog_427cf00b0102vp0j.html 之前在做连连看游戏中,也用到贴图坐标,当时我们讲到,不管是平铺(Tiling)还是偏移(Offset),我们参考的基准都是原始的那张图,Tiling配合Offset,Tiling负责截取,Offset负责移动,最终实现截取贴图的任一部分​,但是这种方法弄出的图形形状都是方块的,无法实现任意的贴图 而下面要讨论的方法和上面的方法会大不一样,会从UV坐标的角度去讨论,从而实现想怎么贴就怎么贴的效…
Probuider 前几天在做一个小项目的时候,用到了Unity自带的一个包ProBuilder其中的Arch生成1/4圆. 挺好玩的,可以在直接Unity中根据需要用Mesh定制生成图形,而不用建模软件. 但是存在一个小问题,就是在使用的时候他的中心点是在生成图形的左下角. 旋转的时候不符合我的需求,我想要的是生成的时候旋转中心在圆心的位置,所以准备自己定制一个. 目标 关于Mesh生成图形的原理可以参考这篇文章,讲得虽然不算很详细,但足够了解基本概念了. 目标是生成下面图中的一个1/4空心圆…
直接替换SkinnedMeshRender的Mesh,实现所谓断肢效果(不过最近发现,绑定多mesh似乎更好实现这样的效果.有时间准备写一篇): 只要不改变两个Mesh原始文件的层级,就不会出现权重的错乱问题. 权重映射的测试:http://www.cnblogs.com/hont/p/5252535.html…
中目标-生成完整面 在之前的内容中我们已经成功生成了一个面,接下来我们要生成剩下的面就很容易了. 我们把之前生成的面当作顶面,接着我们来生成底面. 还记得前面说过\(\color{#1E90FF}{Depth}\)这个参数用来控制深度,也就是顶面和地面之间的距离,放到坐标系中就是控制Z的位置. 底面和顶面的顶点生成方法是一样的,唯一不同的地方就是Z轴的不同. 我们只要用生成顶面的方法改下Z坐标,就可以得到底面了. //下 for (int i = 0; i <= NumberOfSides; i…
using UnityEngine; using System.Collections; using System.Collections.Generic;   public struct SegmentPoint { public Vector3 normal; public Vector3 pos; };   public class DrawMesh_Plane : MonoBehaviour {   MeshFilter meshFilter; /// <summary> /// 面片…