通过脚本添加一个MeshFilter网格

本文关键字:一个 MeshFilter 网格 脚本 添加 | 更新日期: 2023-09-27 18:16:39

如何通过c#添加具有特定网格的MeshFilter组件,例如Capsule网格(来自Unity默认库资源)?我已经走了这么远了……

GameObject obj = new GameObject("Player");
MeshFilter meshFilter = obj.AddComponent<MeshFilter>();
meshFilter.mesh = 

胶囊和其他原始网格在Unity默认资源,我知道如何在编辑器中分配它,但我如何在c#中获得一个?显然,实例化是不可用的,因为它是一个库资源。

:

我本以为这是可行的:

meshFilter.mesh = Resources.Load<Mesh>("Capsule");

但是在编辑器组件检查器中网格仍然是空的。

通过脚本添加一个MeshFilter网格

我不知道如何直接做到这一点,但有一个"hack"的方法:

MeshFilter meshfilter = gameObject.AddComponent<MeshFilter>();
GameObject go = GameObject.CreatePrimitive(PrimitiveType.Capsule);
meshfilter.mesh = go.GetComponent<MeshFilter>().mesh;
meshfilter.gameObject.AddComponent<MeshRenderer>();
Destroy(go);

有帮助吗?

GameObject obj=GameObject.CreatePrimitive(PrimitiveType.Capsule);
obj.name="Player";