Ejemplo n.º 1
0
    /// <summary>
    /// 停止
    /// </summary>
    void CreateStopCmd()
    {
        CmdIdle cmd = CmdFactory.Create(CmdFactory.E_CmdType.Idle) as CmdIdle;

        Owner.BlackBoard.DesiredPosition = Owner.Position;
        Owner.BlackBoard.AddCmd(cmd);
    }
Ejemplo n.º 2
0
    /// <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);
    }