FBX и смена всех текстур

Программирование на Юнити.

FBX и смена всех текстур

Сообщение jeyson 26 апр 2009, 23:18

создаю папку Resources/object, кладу *.fbx, unity3d создает папки Materials и *.fbm (где лежат текстуры)
как можно по клику GUI.Button изменить материалы или текстуры компонентов GameObject'a ?
для теста:
Код: Выделить всё
   prefab = GameObject.Find("d2");
   textures = Resources.LoadAll("Textures/" + prefab.name + "_2", Texture2D);
        gos = prefab.FindObjectsOfType (GameObject);
   for (go in gos) {
      Debug.Log(go.name);
   }

и он выводит мена всех объектов, включая камеру и источник_света
Последний раз редактировалось jeyson 27 апр 2009, 00:06, всего редактировалось 1 раз.
Аватара пользователя
jeyson
UNIт
 
Сообщения: 113
Зарегистрирован: 15 апр 2009, 22:22
Откуда: Ижевск
  • ICQ

Re: FBX и смена всех текстур

Сообщение Neodrop 26 апр 2009, 23:33

Элементарно.

Пусть var obj : GameObject - наш объект для замены.

var mats : Array = obj.renderer.materials;
дальше ищем тот, который заменяем, получаем указатель на текстуру, грузим новую из Resource с помощью Resource.Load и замешаем текстуру.
Точный код не привожу - он очень сильно зависит от конкретной модели и задачи.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: FBX и смена всех текстур

Сообщение jeyson 27 апр 2009, 00:09

var mats : Array = obj.renderer.materials;


:) блин всегда думаю через (_._)
Аватара пользователя
jeyson
UNIт
 
Сообщения: 113
Зарегистрирован: 15 апр 2009, 22:22
Откуда: Ижевск
  • ICQ

Re: FBX и смена всех текстур

Сообщение jeyson 27 апр 2009, 07:40

когда перетаскиваю FBX в Hierarchy он светится синим цветом, но у родителя нет Mesh Renderer из -за чего нельзя вызвать .renderer., а когда создаю Mesh Renderer то разрушается prefab и obj.renderer.materials; возвращает только один материал родителя без чайлдов.
пока работает все с prefab.FindObjectsOfType (GameObject); с отсеиванием не нужных объектов, тк почему оно озвращает все ативные объекты рантайма а не prefab'a.
Аватара пользователя
jeyson
UNIт
 
Сообщения: 113
Зарегистрирован: 15 апр 2009, 22:22
Откуда: Ижевск
  • ICQ

Re: FBX и смена всех текстур

Сообщение Neodrop 27 апр 2009, 10:18

Рендерера нет? :-? А должен быть? Если у объекта есть mesh, должен быть и рендерер. Видать что-то не так с экспортом/импортом модели. Руками добавлять ничего не нужно. Раз нет при импорте - значит и не будет. Mesh то есть или нет?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: FBX и смена всех текстур

Сообщение jeyson 27 апр 2009, 11:17

mesh'ы только в child'ах, а родитель их просто объединяет. ну ладно, обошелся своим методом, благо всего три объекта (не считая мешов)

спасибо!
Последний раз редактировалось jeyson 27 апр 2009, 11:20, всего редактировалось 1 раз.
Аватара пользователя
jeyson
UNIт
 
Сообщения: 113
Зарегистрирован: 15 апр 2009, 22:22
Откуда: Ижевск
  • ICQ

Re: FBX и смена всех текстур

Сообщение Neodrop 27 апр 2009, 11:19

Я же написал, что все предложенные методы применительны именно к тому объекту, на котором есть рендерер. Совсем не обязательно вешать скрипт на родителя.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: FBX и смена всех текстур

Сообщение jeyson 27 апр 2009, 11:22

дело в том что объекты динамические (не известно когда какой обхект с каими мешами будет), проект маеленький, и поэтому только один срипт атаченный на камеру. все работает... пока что :)
Аватара пользователя
jeyson
UNIт
 
Сообщения: 113
Зарегистрирован: 15 апр 2009, 22:22
Откуда: Ижевск
  • ICQ


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12