unity-网格编程08
【摘要】 使用了之前的网格编程方式,仅仅知道是如何生成的网格,那么现在使用的高级API,来编程,那么高级api与之前的api到底有哪些不同呢?首先按照之前的方法来理解,首先有网格这样的数据,然后一股脑的在内存中开辟空间,再将这些数据赋值到mesh这个组件上.而如果模型足够复杂时,这势必会在某一帧中造成巨大的计算.如果使用了高级api,直接在申请的内存中操作首先与之前的一样,添加脚本依赖,以及赋值[Re...
使用了之前的网格编程方式,仅仅知道是如何生成的网格,那么现在使用的高级API,来编程,那么高级api与之前的api到底有哪些不同呢?
首先按照之前的方法来理解,首先有网格这样的数据,然后一股脑的在内存中开辟空间,再将这些数据赋值到mesh这个组件上.
而如果模型足够复杂时,这势必会在某一帧中造成巨大的计算.
如果使用了高级api,直接在申请的内存中操作
首先与之前的一样,添加脚本依赖,以及赋值
[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
public class AdvancedMultiStreamProceduralMesh : MonoBehaviour
...
var mesh = new Mesh
{
name = "Procedural Mesh"
};
GetComponent<MeshFilter>().mesh = mesh;
....
这与之前的代码是相同的,也就不必再做解释.
那么首先,该高级API的用法,就是首先需要申请一款内存空间,这个内存空间直接可以用代码操作:
//1.分配可写网格数据列表,可以是多个
MeshDataArray meshDataArray = Mesh.AllocateWritableMeshData(1);
然后,再将之保存
var mesh = new Mesh
{
name = "Procedural Mesh"
};
Mesh.ApplyAndDisposeWritableMeshData(meshDataArray, mesh);
GetComponent<MeshFilter>().mesh = mesh;
那么,同样的道理,剩下的代码,就需要在这里来添加了.
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)