通过脚本添加MeshFilter网格?

时间:2015-10-07 10:27:05

标签: c# unity3d mesh

如何使用特定网格添加MeshFilter组件,让我们说一个Capsule网格(来自Unity默认库资源),通过C#?我到目前为止......

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

Capsule和其他原始网格物体在Unity默认资源中,我知道如何在编辑器中分配它但是如何在C#中获取?显然,实例化是不可用的,因为它是一个图书馆资产。

更新

我原以为这会起作用:

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

但是之后网格在编辑器组件检查器中仍为空。

2 个答案:

答案 0 :(得分:1)

我不知道如何直接知道如何做到这一点的直接方法,但是有&#34; hacky&#34;方式:

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

这有帮助吗?

答案 1 :(得分:0)

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