Пример #1
0
    /// <summary>
    /// 待機状態処理
    /// </summary>
    public void Idel()
    {
        if (!IsMoveable())
        {
            m_stateChange.ChangeState(PlayerState.End);
        }

        if (!SameTarget())
        {
            m_stateChange.ChangeState(PlayerState.Move);
        }

        LookAtTarget();
    }
Пример #2
0
    /// <summary>
    /// 終了行動
    /// </summary>
    public void End()
    {
        //乗っているボードのデータを取得 配列を直す
        var boarData = m_param.UnderBoard.GetComponent <MoveBoard>().BoardDataValue();
        var prevPos  = m_param.Target.transform.localPosition;

        //行動回数のカウント
        GameData.Instance.MoveCount();
        //ゴールしたか
        if (CheckGoal(boarData.x, boarData.y))
        {
            m_stateChange.ChangeState(PlayerState.Goal);
        }
        else
        {
            TargetPosSet();
            //m_parent.parent = null;
            m_stateChange.ChangeState(PlayerState.Idle);
            m_turn.NextTurn();
        }
    }
Пример #3
0
    /// <summary>
    /// ターゲット方向へ移動
    /// </summary>
    public void Moving()
    {
        Vector3 target   = m_param.Target.transform.position;
        int     target_x = Mathf.RoundToInt(target.x);
        int     target_z = Mathf.RoundToInt(target.z);
        Vector3 myPos    = m_parent.position;
        int     my_x     = Mathf.RoundToInt(myPos.x);
        int     my_z     = Mathf.RoundToInt(myPos.z);

        //ターゲットのポジションと自分のポジションのX,zが一緒なら returu
        if (target_x == my_x && target_z == my_z)
        {
            m_stateChange.ChangeState(PlayerState.Idle);
            return;
        }
        //ターゲットのxと自信のxは同じか
        if (target_x != my_x)
        {
            if (TargetIsRight(target_x, my_x))
            {
                Move(1, 0);
            }
            else
            {
                Move(-1, 0);
            }
        }
        if (target_z != my_z)
        {
            if (TargetIsForward(target_z, my_z))
            {
                Move(0, 1);
            }
            else
            {
                Move(0, -1);
            }
        }
    }