2015-10-07 2 views
0

Как вы добавляете компонент MeshFilter со специфической сеткой, скажем, сетку Capsule (из ресурсов библиотеки Unity по умолчанию), через C#? Я далеко ...Добавление сетки MeshFilter через скрипт?

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

Capsule и другие примитивные Сетки находятся в единстве ресурсов по умолчанию, и я знаю, как назначить его в редакторе, но как я могу получить один в C#? Очевидно, что мгновенный доступ недоступен, поскольку он является библиотечным активом.

UPDATE:

я бы подумал, что это будет работать:

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

Но сетка остается пустой после этого в инспекторе редактора компонентов.

+0

См. [«Если вопросы включают« теги »в их названиях?»] (Http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles), где консенсус «нет, они не должны»! –

+1

Так как вы так послушно удалили его, почему бы и не попытаться ответить на мой вопрос? :) – BadmintonCat

ответ

1

Я не знаю, о прямом пути, как бы не знать прямой способ, как это сделать, но есть «Hacky» способ:

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

ли это помощь?

+0

Да, это помогает, спасибо! Я понял очень похожий подход: создание «GameObject.CreatePrimitive (PrimitiveType.Capsule)» и просто использовать это как основу для создания моего игрового объекта. Мне нужно только удалить Mesh Renderer из него, поскольку мне это не нужно. – BadmintonCat

+0

Рад, что я мог помочь. :) – Hypno

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

Нет, это создает «GameObject», но не «Mesh». Я уже пробовал это. – BadmintonCat

+0

Вы можете получить сетку с 'obj.GetComponent () .mesh' no? – Pluto

+1

Я думаю, вы неправильно поняли мой вопрос. Мне не нужно получать сетку, мне нужно установить ее в Capsule Mesh из ресурсов Unity по умолчанию. – BadmintonCat

 Смежные вопросы

  • Нет связанных вопросов^_^