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();
         }
     }
 }