/// <summary> /// 停止 /// </summary> void CreateStopCmd() { CmdIdle cmd = CmdFactory.Create(CmdFactory.E_CmdType.Idle) as CmdIdle; Owner.BlackBoard.DesiredPosition = Owner.Position; Owner.BlackBoard.AddCmd(cmd); }
/// <summary> /// 创建命令 /// </summary> /// <param name="type">命令类型</param> public static ICmd Create(E_CmdType type) { ICmd cmd = null; if (UnusedCmds[type] != null && UnusedCmds[type].Count > 0) { cmd = UnusedCmds[type].Dequeue(); } else { switch (type) { case E_CmdType.Idle: cmd = new CmdIdle(); break; case E_CmdType.Move: cmd = new CmdMove(); break; case E_CmdType.Attack: cmd = new CmdAttack(); break; case E_CmdType.Death: cmd = new CmdDeath(); break; case E_CmdType.WeaponShow: cmd = new CmdWeaponShow(); break; default: Debug.LogError("No Cmd to Create!!! ICmd Type: " + type); break; } } if (cmd != null) { cmd.Reset(); cmd.SetActive(); #if DEBUG UsedCmds.Add(cmd); #endif } return(cmd); }