Показать сообщение отдельно
Старый 24.11.2015, 22:06   #1
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Renderer.material.color сбрасывается

Добрый день!
Столкнулся с такой фигнёй:

Создаю меш ручками из вершин в OnEnable.

_mesh = new Mesh();
gameObject.AddComponent<MeshFilter>().mesh = _mesh;
_renderer = gameObject.AddComponent<MeshRenderer>();
Далее вставляю буфера вершин/треугольников, и — главное — выставляю цвет материалу новоиспечённого рендерера:

_renderer.material.color = new Color(1,0,0);
Проверяю Debug.Log'ом — всё верно. 1,0,0,1 (красный).
Смотрю, что в игре делается. А в игре оно белое.
Проверяю тем же Debug.Log'ом material.color, но уже в Update. А там 1,1,1,1.

То есть в какой-то момент между созданием рендерера и собственно игрой цвет материала вновь становится белым.
Вотзефак?

Выставление цвета работает, если его прописать в Start().
Так что решается вопрос тем, что переносим в Start это дело.
Но хотелось бы разобраться в природе этого бага! Не люблю, когда что-то делается, а я даже не знаю, почему. Кто тут знаток, который может объяснить сей феномен?
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием