Tolking 06 мар 2010, 04:05
Я не использую материалы! Я использую импортированные модели. Что вы тормозите? Я не назначаю никаких материалов в Юнити. Моделер не назначает материалы в Юнити. Он в 3Д максе устанавливает текстуру, тип бленда, спекулар и пр. как это делалось раньше, когда небыло ни каких шейдеров! Как Юнити поступает с материалом это его внутреннее дело! Мы НЕ работаем с материалами в Юнити. И меня это устраевает, я бы хотел и дальше оставаться в неведеньи чего там у него внутри происходит с материалами.
какие нафик
private var shader1 = Shader.Find( "Diffuse" );
private var shader2 = Shader.Find( "Transparent/Diffuse" );
На модели 2 текструры - дифуз, третья сверху - транспарент и сферамапа еще. И чего тут будет за шейдер у материала? И какой нужно Shader.Find чтобы объект выглядел также, но стал полупрозрачным? Чтобы выглядел так-же, но был освещен полностью со всех сторон?
Еще раз: Большой уровень, тысяча объектов с неизвестно какими материалами на них, навелись мышкой он стал полностью освещенным, кликнули на него он стал полупрозрачным, кликнули еще раз - стал непрозрачным, убрали мышку с объекта - он стал таким как раньше. Понимаете?
вы не можете сделать
private var shader1 = Shader.Find( "Diffuse" );
private var shader2 = Shader.Find( "Transparent/Diffuse" );
потому, что на объекте может быть "Diffuse", а может быть "Transporent\Cutout\Diffuse" например, или "Particles\ Additive(soft)". По-этому вернемся к первому посту "Как с этим работать?"
Как я понял из Ваших постов, чтобы сделать как я хочу, нужно каждому объекту назначить шейдеры для деланья его полупрозрачным, полностью освещенным и полностью освещенным и полупрозрачным, и менять их в зависимости от ситуации. Вам нравится такой вариант? Мне нет.
Ковчег построил любитель, профессионалы построили Титаник.