2017-02-14 7 views
0

Я хочу изменить «TintColor» материала, используя скрипт, но при этом происходит ошибка: «Материал не имеет свойства цвета» _TintColor '' ,Материал не имеет свойства цвета «_TintColor»

Я искал ее, но все усилия напрасно. Я прочитал этот пост, и он говорит, что его можно изменить с помощью скрипта.

https://forum.unity3d.com/threads/control-the-tint-color-of-the-material.23031/

Шейдер, что я использую 'спрайты/Default'

public Color[] colors = { new Color(42/255.0f, 246/255.0f, 229/255.0f,1),new Color(20/255.0f, 127/255.0f, 255/255.0f,1),new Color(73/255.0f, 3/255.0f, 198/255.0f,1); 
Debug.Log(renderer.material.GetColor("_TintColor")); 
//renderer.material.SetColor("_TintColor", colors[2]); /*This eventually I want to use */ 

Я попытался играть с альфа-значение, но это не сработало

Я не знаю, что я делаю неправильно. Было бы очень полезно, если кто-то может указать мне свою ошибку или сообщить мне/поделиться ссылкой, изменить цвет «TintColor» материала

ответ

1

Shader 'Sprites/Default' не имеет свойства «_TintColor» , но вместо этого свойство «_Color». Так что все, что вам нужно сделать, это изменить

Debug.Log(renderer.material.GetColor("_TintColor")); 

в

Debug.Log(renderer.material.GetColor("_Color")); 
+0

Я принял ваш ответ, но один вопрос, связанный с этим. Как узнать, открыт ли объект «_TintColor» или «_Color» или какое-либо другое свойство? –

+1

@AshishSingh Вы можете просмотреть базовый шейдерный код для стандартных шейдеров Unity по [загрузке «Встроенные шейдеры»] (https: // unity3d. com/get-unity/download/archive) для вашей соответствующей версии Unity. Это должно предоставить вам всю необходимую информацию о различных свойствах на них. – Serlite

+0

@AshishSingh. Вы можете щелкнуть в контекстном меню материала (шестерня в правом верхнем углу), а затем «Выбрать шейдер». Вы увидите все свойства шейдера – luizcarlosfx

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