Страница 1 из 1

Вопрос по организации планирования

СообщениеДобавлено: 22 дек 2014, 14:29
bwolf88
Всем привет.
Такой вопрос: как можно организовать систему планирования различных действий?

Есть несколько разнокалиберных скриптов, каждый из которых отвечает за некоторое действие: идти, искать, копать и т.п.
1. Требуется создавать цепочки таких действий в произвольном порядке.
2. Желательно чтобы каждый класс действий был автономным, то есть независимым от остальных.
Каким образом можно без использования флагов в Update и корутин произвести некую последовательность различных действий (вызов разных скриптов) и вообще составить цепочку действий ?
Может есть какая то схема сообщений или еще что то ?

Подскажите :).

Re: Вопрос по организации планирования

СообщениеДобавлено: 22 дек 2014, 14:31
Tolking
Машина состояний. (Конечный автомат)

Re: Вопрос по организации планирования

СообщениеДобавлено: 23 дек 2014, 11:09
BenjaminMoore
Синтаксис:
Используется csharp
    public class Test : MonoBehaviour
    {
        private Action logic;

        void Awake()
        {
            var firstModule = new Module("I'm first!");
            var secondModule = new Module("I'm second!");

            logic += firstModule.Run;
            logic += secondModule.Run;
        }

        void Update()
        {
            if(logic != null) logic();
        }


    }

    public class Module
    {
        private readonly string mes;
        public Module(string message)
        {
            mes = message;
        }

        public void Run()
        {
            Debug.Log(mes);
        }
    }
 


самое простое и эффективное это использовать делегаты
над этим примером можно спокойно накрутить менеджер, который будет разруливать приоритеты, хранить дополнительные аргументы, работать с разными делегатами, чистить и так далее

Re: Вопрос по организации планирования

СообщениеДобавлено: 23 дек 2014, 12:15
Woolf
причем тут делегаты? Делегаты это уже реализация, а человек спрашивает об организации. Только я не очень понял смысл его вопроса ))

Re: Вопрос по организации планирования

СообщениеДобавлено: 23 дек 2014, 13:58
BenjaminMoore
Woolf писал(а):причем тут делегаты? Делегаты это уже реализация, а человек спрашивает об организации. Только я не очень понял смысл его вопроса ))

Каким образом можно без использования флагов в Update и корутин произвести некую последовательность различных действий (вызов разных скриптов) и вообще составить цепочку действий ?

это был ответ на этот вопрос

Re: Вопрос по организации планирования

СообщениеДобавлено: 23 дек 2014, 15:24
bwolf88
Благодарю, буду разбираться :). Уже второй человек который предлагает мне сунуться в делегаты, похоже от них не отвертеться :D.

Re: Вопрос по организации планирования

СообщениеДобавлено: 23 дек 2014, 15:33
lwe
Это полезная вещь, ну есть еще и события. А если честно не понимаю зачем здесь делегировать в апйдете!? - зачем именно вызывать методы какого то процесса причем всех сразу, ведь по идеи нужно только вызывать текущий? Вам ведь всеравно придется иметь гдето статический флаг или счетчик который будет показывать реальный номер вызова - тогда уже лучше сразу начать с потоков где вы четко сможете выполнять какието процессы от флага до флага.