Extravert | Дата: Понедельник, 24 Декабря 2012, 13:43 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Сабж: В своей игре я сейчас реализую магию, однако не знаю, как это грамотно сделать. Дело в том, что заклинаний будет больше 100, и все они должны вызываться через один и тот же метод Invoke() То есть у меня есть юнит, при определенных действиях (нажатие на заклинании) он получает вызов Invoke() и происходит действие заклинания.
Какую я вижу реализацию: 1. Создать базовый класс магий 2. Создать кучу производных классов на каждое заклинание 3. Создать кучу префабов на каждое заклинание 4. Закинуть все заклинания в какое то перечисление объекта лежащего на карте 5. Обращаться к свойству Invoke базового класса
В этом я вижу три минуса: 1. Возможно, свойство Invoke будет вызываться только на уровне базового класса, минуя потомка. 2. Если забыть закинуть какое то заклинание-префаб в gameObject на карте, скажем по невнимательности - это окажется недоработками. 3. Это громоздко
Отступление: Насколько мне известно в C# есть интерфейсы, которые бы могли решить мою проблему, вызывая универсальный метод потомков. Однако, я никогда не пользовался интерфейсами в C#, мало того, я не нашел ни одного варианта их применения в Unity 3d, потому предположительно это не заработает.
Слушаю ваши предложения по реализации подобного. Заранее спасибо.
Unity XGM Community
|
|
| |