コード例 #1
0
    private void FindTarget()
    {
        float targetRange = 5f;  //distanta minima la care incepe urmarirea

        int newX = (int)GameObject.Find("Cube").transform.position.x;
        int newZ = (int)GameObject.Find("Cube").transform.position.z;

        if (Vector3.Distance(transform.position, new Vector3(newX, 1, newZ)) <= 2f) //te-o prins
        {
            gameOver();
            return;
        }

        if (Vector3.Distance(transform.position, new Vector3(newX, 1, newZ)) < targetRange)     //pozitia playerului
        {
            //chase that mf
            if (state != enemyStates.chasing || currentPathIndex >= pathVectorList.Count)
            {
                state = enemyStates.chasing;
                animator.SetBool(state.ToString(), true);
                SetTarget();
            }
        }
        else if (state == enemyStates.chasing)
        {
            animator.SetBool(state.ToString(), false);
            state = enemyStates.roaming;
            endX  = (int)transform.position.x + mapDifference;
            endZ  = (int)transform.position.z + mapDifference;
            SetTarget();
        }
    }