как изменить материал на скине ?

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

как изменить материал на скине ?

Сообщение egoded 21 ноя 2012, 09:59

как изменить материал на скине ? замучался, ипортировал модельку с мешем и костями все нормально, создал префаб бросил туда повесил на него скрипт, потом кодом вызываю она появляется на сцене, а скриптом который висит на префабе хочу поменять материал(префаб называется мс, а чилдраны mesh и bip01 )
пытался по разному но не получается ,

ScriptName script = gameObject.GetComponentInChildren<SkinnedMeshRenderer>();

ошибка
Assets/#/Mc_scr.cs(6,17): error CS0246: The type or namespace name `ScriptName' could not be found. Are you missing a using directive or an assembly reference?
egoded
UNITрон
 
Сообщения: 313
Зарегистрирован: 14 июл 2012, 08:47

Re: как изменить материал на скине ?

Сообщение Nicloay 21 ноя 2012, 10:28

ScriptName script = gameObject.GetComponentInChildren<SkinnedMeshRenderer>();

замени на

SkinnedMeshRenderer script = gameObject.GetComponentInChildren<SkinnedMeshRenderer>();

если гдето видишь треугольные скобки в getComponent или как там они правильно, значит что возвращаемый тип будет таким.

Плюс читай инормацию об ошибке, можешь через гугл транслейт - там все очень понятно написано обычно.
If you wish to make an apple pie from scratch, you must first invent the universe.(Carl Sagan, Cosmos)
| My Asset Store | coloring book | github | _wiki.unity3d.com | twitter | linkedin |
Аватара пользователя
Nicloay
Адепт
 
Сообщения: 1288
Зарегистрирован: 31 май 2012, 09:27
Откуда: Альпс
  • Сайт

Re: как изменить материал на скине ?

Сообщение egoded 21 ноя 2012, 10:55

спасибо, а что дописать дальше?
когда я сам создавал материалы в скрипте работало

renderer.material = mat[0];

глядя в инспектор по логике вещей

script.renderer.material = Materials[0]; должен работать, но не работает...
egoded
UNITрон
 
Сообщения: 313
Зарегистрирован: 14 июл 2012, 08:47

Re: как изменить материал на скине ?

Сообщение egoded 21 ноя 2012, 11:35

вроде как бы частично разобрался, видимо тот массив из материалов который можно задавать в SkinnedMeshRenderer это массив нужен для того когда на модели несколько импортированных материалов и отдельно переключаться между нимим нельзя, задачу я решил путем назначения текстуры на один и тот же материал.

if(speed > 1) gameObject.GetComponentInChildren<SkinnedMeshRenderer>().renderer.material.mainTexture = tex[1];

но вот если модель была импортирована сразу с несколькими материалами то как на них менять текстуру

gameObject.GetComponentInChildren<SkinnedMeshRenderer>().renderer.material[3].mainTexture = tex[1]; -так что ли? сомневаюсь.... к сожалению модельки нет под рукой что бы проверить, если кто знает отпишитесь пожалуйста, а то геморой чуется еще предстоит....
egoded
UNITрон
 
Сообщения: 313
Зарегистрирован: 14 июл 2012, 08:47


Вернуться в Почемучка

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

Сейчас этот форум просматривают: Google [Bot] и гости: 40