public void RemoveCommand(IBehaviourCommand command) { if (command == null) { return; } commands.Remove(command); }
void Execute() { if (commands.Count > 0) { currentCommand = commands[0]; currentCommand.Execute(); } }
public void AddCommand(IBehaviourCommand command) { if (command == null) { return; } commands.Add(command); }
public void Update() { if (currentCommand == null) { Execute(); } else { if (currentCommand.IsFinished) { RemoveCommand(currentCommand); OnFinish?.Invoke(); currentCommand = null; Execute(); } } }