// Update is called once per frame void Update() { if (!m_Actions[m_RobotState]()) { m_RobotState = RobotAction.RobotState.ROBOT_IDLE; } }
// Use this for initialization void Start() { m_Actions = new Dictionary <RobotAction.RobotState, Func <bool> >(); m_RobotAction = GetComponent <RobotAction>(); m_IsAction = true; m_RobotState = RobotAction.RobotState.ROBOT_MOVE; AddAction(RobotAction.RobotState.ROBOT_IDLE, m_RobotAction.RobotIdle()); AddAction(RobotAction.RobotState.ROBOT_MOVE, m_RobotAction.RobotMove()); AddAction(RobotAction.RobotState.ROBOT_ARM_ATTACK, m_RobotAction.RobotArmAttack()); }
/// <summary> /// アクションを追加 /// </summary> /// <param name="state">アクションの種類</param> /// <param name="action">アクション</param> private void AddAction(RobotAction.RobotState state, Func <bool> action) { m_Actions[state] = action; }
/// <summary> /// アクションをセットする /// </summary> /// <param name="state">アクションステート</param> /// <param name="loop">ループするかどうか</param> public void SetAction(RobotAction.RobotState state, bool loop) { m_RobotState = state; }