Вторник, 23 Апреля 2024, 13:00

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » скопировать значение переменной c#
скопировать значение переменной c#
ggmanДата: Пятница, 10 Января 2014, 21:50 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
В общем, нужно мне было при наведении мыши, не зная какой сейчас цвет материала, поменять его на зеленый, а потом вернуть обратно.
Пробовал скопировать цвет просто через "=" в левую переменную Collor. а потом присвоить:
renderer.material.color = Color.green;

Но, система копирования здесь кривая. В результате все цвета стали зелеными.

Как нормально скопировать цвет?
ЛевшаДата: Пятница, 10 Января 2014, 22:05 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
Цитата ggman ()
Но, система копирования здесь кривая.

О_о Может в руках дело ? smile
Цвет - это параметр материала, и если на всех обьектах один и тот же материал - то ясный пень, цвет поменяется на всех обьектах с этим материалом.


X.cor.R (Prologue)

Сообщение отредактировал Левша - Пятница, 10 Января 2014, 22:07
nwsxДата: Пятница, 10 Января 2014, 22:53 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Ну ваще-то, при обращении к renderer.material, материал должен клонироваться. Наверное, ошибка не в этой строчке.

Westboro
Dungeon Journey на Google Play


Сообщение отредактировал nwsx - Пятница, 10 Января 2014, 23:42
seamanДата: Пятница, 10 Января 2014, 23:06 | Сообщение # 4
старожил
Сейчас нет на сайте
Цитата
материал должен клонироваться.

Кому он должен?
robertonoДата: Пятница, 10 Января 2014, 23:19 | Сообщение # 5
Чокнутый Кот
Сейчас нет на сайте
Вы запоминаете материал? В данном случает будет проще запомнить цвет.
Color oldColor = object.renderer.material.color
nwsxДата: Пятница, 10 Января 2014, 23:39 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Цитата seaman ()
материал должен клонироваться.

Кому он должен
http://docs.unity3d.com/Documentation/ScriptReference/Renderer-material.html


Westboro
Dungeon Journey на Google Play
ЛевшаДата: Пятница, 10 Января 2014, 23:54 | Сообщение # 7
почти ветеран
Сейчас нет на сайте
Интересно... может в последних версиях введено ?
Тогда резонный вопрос, почему у топик стартера:
Цитата ggman ()
В результате все цвета стали зелеными.


X.cor.R (Prologue)

Сообщение отредактировал Левша - Пятница, 10 Января 2014, 23:55
nwsxДата: Суббота, 11 Января 2014, 00:13 | Сообщение # 8
постоянный участник
Сейчас нет на сайте
Потому что у него руки из жопы. smile
Не, не в последних - год назад уже было.


Westboro
Dungeon Journey на Google Play


Сообщение отредактировал nwsx - Суббота, 11 Января 2014, 00:14
ggmanДата: Суббота, 11 Января 2014, 02:20 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
Давайте без оскорблений и не очень умных шуток.
Привожу код который использую:
Код

Color tmp;

void OnMouseEnter() {
    tmp = renderer.material.color;
    renderer.material.color = Color.green;
   }

   void OnMouseExit () {   
    renderer.material.color = tmp;
   }

Результат его выплнения: tmp тоже содержит зеленый цвет. Как это исправить?


Сообщение отредактировал ggman - Суббота, 11 Января 2014, 02:59
error111Дата: Суббота, 11 Января 2014, 04:50 | Сообщение # 10
заслуженный участник
Сейчас нет на сайте
Цитата ggman ()
Привожу код который использую:


tmp запоминай в Start(), а не в маусЕнтере.


[Shmup/RPG] Fantasy Shmup!


Сообщение отредактировал error111 - Суббота, 11 Января 2014, 04:51
set16Дата: Суббота, 11 Января 2014, 07:26 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
Если у вас на матерьяле лежит текстура может подойти

Код

void OnMouseEnter() {  
     renderer.material.color = Color.green;  
    }  

    void OnMouseExit () {    
    renderer.material.color = Color.white;  
    }  



Только меред этим выбрать у матерьала самый белый с цветом 1,1,1,1


=>The darkness of distant lands [3D]<=
ggmanДата: Суббота, 11 Января 2014, 20:30 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
error111
Не подходит. Цвет постоянно изменяется и какой он будет в момент наведения мыши не известно.
divol13Дата: Суббота, 11 Января 2014, 20:46 | Сообщение # 13
участник
Сейчас нет на сайте
в юнити не силен, но
очевидно же
tmp = renderer.material.color;
то есть ты меняешь цвет и там(renderer.material.color) и там(tmp).
надо просто создать цвет, заполнить его цветом материала,
ну а дальше сам догадаешься...


allodsДата: Воскресенье, 12 Января 2014, 18:04 | Сообщение # 14
почти ветеран
Сейчас нет на сайте
tmp=this.renderer.material.GetColor("_Color");
this.renderer.material.SetColor("_Color",Color.green);

Вот так попробуй

Добавлено (12.01.2014, 18:04)
---------------------------------------------

Цитата ggman ()
Код

Color tmp;

void OnMouseEnter() {
tmp = renderer.material.color;
renderer.material.color = Color.green;
}

void OnMouseExit () {
renderer.material.color = tmp;
}

Результат его выплнения: tmp тоже содержит зеленый цвет. Как это исправить?


Если ты се ровно заполняешь tmp начальным цветом то почему его просто в старт не засунуть
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » скопировать значение переменной c#
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг