Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 24.11.2015, 19:06   #1
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 25.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,321
Написано 5,164 полезных сообщений
(для 14,920 пользователей)
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)
 
Ответить с цитированием
Старый 24.11.2015, 20:43   #2
ILonion
ПроЭктировщик
 
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений
(для 25 пользователей)
Ответ: Renderer.material.color сбрасывается

У меня белым не становится. Запустил твой скрипт (без вершино-буферов):
http://puu.sh/lxlBC/bb5398b859.png

public class xclassMonoBehaviour
{
    private 
Mesh _mesh;
    private 
Renderer _renderer;

    
void Start()
    {
        
Debug.Log("start");
    }

    
void Update()
    {
        
Debug.Log("update: " _renderer.material.color);
    }

    
void OnEnable()
    {
        
Debug.Log("on enable");

        
_mesh = new Mesh();
        
gameObject.AddComponent<MeshFilter>().mesh _mesh;
        
_renderer gameObject.AddComponent<MeshRenderer>();

        
_renderer.material.color = new Color(100);

    }

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ABTOMAT (24.11.2015)
Старый 24.11.2015, 21:00   #3
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 25.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,321
Написано 5,164 полезных сообщений
(для 14,920 пользователей)
Ответ: Renderer.material.color сбрасывается

Блин ладно. Буду у себя искать.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

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

(Offline)
 
Ответить с цитированием
Старый 25.11.2015, 11:21   #4
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,496
Написано 2,953 полезных сообщений
(для 5,217 пользователей)
Ответ: Renderer.material.color сбрасывается

Ты стандартный материал правишь, зачем?
Можешь рендереру выставить цвет, вместо самого материала, потому что _renderer.material делает копию материала.
Renderer.SetPropertyBlock(MaterialPropertyBlock properties
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ABTOMAT (25.11.2015)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 18:08.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com