Size: a a a

2021 April 16

РС

Роман Сальников... in unity3d.ru
А если у меня событие что куб сталкивается с крышей.

RoofCollisionEvent не то?
источник

РС

Роман Сальников... in unity3d.ru
Почему нельзя в конец добавлять слово Event
источник

РС

Роман Сальников... in unity3d.ru
Сразу же ясно что это
источник

S

Stas in unity3d.ru
Не забудь корутину положить в объект и запускать через него, проверяя не запущена ли она уже, чтобы у тебя одновременно 500 корутин не работали параллельно. Только если это не желаемое поведение
источник

S

Stas in unity3d.ru
Можно и добавить слово Event. Тогда обработчик будет OnRoofCollision
источник

S

Stas in unity3d.ru
Или RoofCollisionHandler
источник

S

Stas in unity3d.ru
Есть ещё вариант лямбда-функций, но это неудобно если тебе вдруг понадобится сделать отписку от события
источник

РС

Роман Сальников... in unity3d.ru
Так а если у меня обработчик отвечает за изменение цвета например.

По названию OnRoofColission непонятно чем он занимается
источник

S

Stas in unity3d.ru
Обработчик обрабатывает событие. Он вызывает другие методы, например, изменение цвета. Тогда внутри RoofCollisionHandler будет вызов SetColor
источник

РС

Роман Сальников... in unity3d.ru
Но тогда в инспекторе не будет понятно за что этот метод отвечает. Придется в скрипт лезть
источник

РС

Роман Сальников... in unity3d.ru
И смотреть что внутри хендлера лежит метод изменения цвета
источник

S

Stas in unity3d.ru
В таком случае у тебя юнитековские евенты и есть обработчики. Я подразумевал именование обработчиков в коде. Если ты дергаешь методы прямо через инспектор тогда обработчиком выступает поле события, которое может содержать набор методов
источник

S

Stas in unity3d.ru
То бишь там будет серия методов SetColor, Move, etc.
источник

S

Stas in unity3d.ru
Это ок
источник

РС

Роман Сальников... in unity3d.ru
Во, тогда все, норм. И тогда по идее OnColorChanging внутри которого будет Start coriutine(change color) пихать в инспектор как обработчик норм?
источник

S

Stas in unity3d.ru
В контексте инспектора, кстати, имхо, слово Event в названии события не нужно, ибо инспектор итак отрисовывает это поле как событие и итак все ясно)
источник

РС

Роман Сальников... in unity3d.ru
Ну, имею ввиду название
источник

S

Stas in unity3d.ru
OnColorChanging можно трактовать как "то, что происходит, когда изменился цвет". Если метод запускает изменение цвета, то я бы его назвал ChangeColorOverTime например, чтобы отразить что это длительный процесс
источник

S

Stas in unity3d.ru
Выходит такая картина. Евент в инспекторе называется RoofCollision, на нем висит метод ChangeColorOverTime, а этот метод внутри запускает корутину ChangeColorCoroutine
источник

S

Stas in unity3d.ru
Вообще названия это субьективщина. Одному понятнее так, другому иначе.
источник