Mesh
sharedMesh和Mesh的区别
- sharedmesh是共享网格,改动之后所有该mesh的引用的物体都会改变,并且运行结束时assets中资源的改变不会还原(可通过重启unity恢复)
- mesh是私有网格,初始与sharedmesh引用一样,一旦调用meshFilter.mesh之后mesh以及sharedMesh都会被改成 originMesh(Instance),随后的修改都会基于这个mesh并且sharedmesh会相应的作一样的修改
- 无论修改多少次mesh,内存中只会存在originMesh(Instance)的资源,并不会每次修改都再新建资源
- !!!重要!!!:物体销毁时,所生成的originMesh(Instance)并不会销毁,必须手动销毁,会导致内存不断增长
注意:
- 调用meshFilter.mesh在等号右边时(即内部调用mesh属性的get)才会改成originMesh(Instance)
- 调用meshFilter.mesh在等号左边时(即内部调用mesh属性的set)特殊情况下是不会修改为 originMesh(Instance)。
比如:sharedMesh = meshFilter.sharedMesh;
meshFilter.mesh = sharedMesh;
这段代码不会导致mesh以及sharedmesh的引用变为 originMesh(Instance)
两篇讲的比较好的文章:
material 和 sharedMaterial 的区别
mesh 和 sharedMesh 的区别
Material
sharedMaterial和Material的区别
- 见Mesh - sharedMesh和Mesh的区别
前人栽树后人乘凉,乘凉之后也要记得栽树哦。