Ejemplo n.º 1
0
    private void LoopPatrolling(FSMBase fsm)
    {
        // a - b - c - a - b - c -...
        if (Vector3.Distance(fsm.transform.position, fsm.wayPoints[index].position) < 0.1)
        {
            if (index == fsm.wayPoints.Length - 1)
            {
                index = (index + 1) % fsm.wayPoints.Length;
            }
        }

        fsm.MoveToTarget(fsm.wayPoints[index].position, 0, fsm.walkSpeed);
    }
Ejemplo n.º 2
0
    private void PingPongPatrolling(FSMBase fsm)
    {
        //a b c b a b c b
        if (Vector3.Distance(fsm.transform.position, fsm.wayPoints[index].position) < 0.1)
        {
            if (index == fsm.wayPoints.Length - 1)
            {
                Array.Reverse(fsm.wayPoints);
                index++;
            }
            index = (index + 1) % fsm.wayPoints.Length;
        }

        fsm.MoveToTarget(fsm.wayPoints[index].position, 0, fsm.walkSpeed);
    }
Ejemplo n.º 3
0
    private void OncePatrolling(FSMBase fsm)
    {
        //a - b - c
        if (Vector3.Distance(fsm.transform.position, fsm.wayPoints[index].position) < 0.1)
        {
            if (index == fsm.wayPoints.Length - 1)
            {
                fsm.isPatrolComplete = true;
                return;
            }

            index++;
        }
        fsm.MoveToTarget(fsm.wayPoints[index].position, 0, fsm.walkSpeed);
    }
Ejemplo n.º 4
0
    public override void ActionState(FSMBase fsm)
    {
        base.ActionState(fsm);

        fsm.MoveToTarget(fsm.targetTF.position, fsm.chStatus.attackDistance, fsm.runSpeed);
    }