C# 通过脚本添加网格过滤器网格?

C# 通过脚本添加网格过滤器网格?,c#,unity3d,mesh,C#,Unity3d,Mesh,如何通过C#添加具有特定网格的MeshFilter组件,例如胶囊网格(来自Unity默认库资源)?我就这么远 GameObject obj = new GameObject("Player"); MeshFilter meshFilter = obj.AddComponent<MeshFilter>(); meshFilter.mesh = gameobjectobj=新游戏对象(“玩家”); MeshFilter MeshFilter=obj.AddComponent(); m

如何通过C#添加具有特定网格的MeshFilter组件,例如胶囊网格(来自Unity默认库资源)?我就这么远

GameObject obj = new GameObject("Player");
MeshFilter meshFilter = obj.AddComponent<MeshFilter>();
meshFilter.mesh = 
gameobjectobj=新游戏对象(“玩家”);
MeshFilter MeshFilter=obj.AddComponent();
meshFilter.mesh=
胶囊和其他基本网格位于Unity默认资源中,我知道如何在编辑器中分配它,但如何在C#中获得它?显然,Instantiation不可用,因为它是库资源

更新

我本以为这会奏效:

meshFilter.mesh = Resources.Load<Mesh>("Capsule");
meshFilter.mesh=Resources.Load(“胶囊”);

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

我不知道如何使用直接方法,也不知道如何使用直接方法,但有一种“黑客”方法:

GameObject obj=GameObject.CreatePrimitive(PrimitiveType.Capsule);
obj.name="Player";
MeshFilter meshfilter = gameObject.AddComponent<MeshFilter>();
GameObject go = GameObject.CreatePrimitive(PrimitiveType.Capsule);
meshfilter.mesh = go.GetComponent<MeshFilter>().mesh;
meshfilter.gameObject.AddComponent<MeshRenderer>();
Destroy(go);
MeshFilter-MeshFilter=gameObject.AddComponent();
GameObject go=GameObject.CreatePrimitive(PrimitiveType.Capsule);
meshfilter.mesh=go.GetComponent().mesh;
meshfilter.gameObject.AddComponent();
销毁(go);

这有帮助吗?

我不知道如何直接做,也不知道如何直接做,但有一种“黑客”方式:

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

这有帮助吗?

请看,共识是“不,他们不应该”!既然你如此尽职尽责地删除了它,为什么不试着回答我的问题呢?:)请看,那里的共识是“不,他们不应该”!既然你如此尽职尽责地删除了它,为什么不试着回答我的问题呢?:)不,这会创建一个
游戏对象
,但不会创建
网格
。我已经试过了。你可以用
obj.GetComponent().mesh
no获取网格?我想你误解了我的问题。我不需要获取网格,我需要将其设置为Unity默认资源中的胶囊网格。不,这将创建一个
游戏对象
,但不是
网格
。我已经试过了。你可以用
obj.GetComponent().mesh
no获取网格?我想你误解了我的问题。我不需要获取网格,我需要从Unity默认资源中将其设置为胶囊网格。是的,这很有帮助,谢谢!我想出了一个非常类似的方法:创建一个
GameObject.CreatePrimitive(PrimitiveType.Capsule)
,并将其作为创建游戏对象的基础。我只需要从中删除网格渲染器,因为我不需要它。很高兴我能提供帮助。:)是的,那很有帮助,谢谢!我想出了一个非常类似的方法:创建一个
GameObject.CreatePrimitive(PrimitiveType.Capsule)
,并将其作为创建游戏对象的基础。我只需要从中删除网格渲染器,因为我不需要它。很高兴我能提供帮助。:)