как правильно назвать этот интерфейс, если он может быть у: пилы которая убивает игрока, у блока на который можно встать и будет действие, у зоны в которую вошёл и будет событие. Правильно ли понимаю что лучше всего подходит слово Trigger?
Вопрос второй, реализация. Как лучше реализовать универсально.
Сейчас например так:
public interface ITrigger
{
void OnTrigger();
}
Но это если без передачи параметра. А удобно было бы передавать того кто вызвал этот триггер.
Например так:
public interface ITrigger<T>
{
void OnTrigger(T arg1);
}
Вопрос в том на сколько правильно делать так, и на сколько оптимизировано ?
collider.GetComponent<ITrigger<Player>>().OnTrigger(this);
Пугает этот участок ITrigger<Player>, не идет ли кастование, распаковка?
То есть или я обращаюсь так GetComponent<ITrigger<Player>>(), или создаю наследие IPlayerTrigger : ITrigger<Player> и уже GetComponent<IPlayerTrigger>()
Вопрос третий: По мимо триггера обычного с одним методом, нужен триггер зоны / области, где будет вызов при входе и при выходе. Сейчас сделал так, но может можно лучше? По солид и ооп.
public interface ITriggerArea
{
void OnTriggerAreaEnter();
void OnTriggerAreaExit();
}
Спасибо за любое мнение!
Это случайно не unity?
Обсуждают сегодня