コード例 #1
0
        public void Start()
        {
            target        = GetComponent <AIDestinationSetter>();
            detectPrey    = GetComponent <DetectPrey>();
            aiPath        = GetComponent <AIPath>();
            patrolPoints  = new List <GameObject>();
            requestTarget = true;

            currentStates = predStates.Patrol;

            foreach (GameObject obj in GameObject.FindObjectsOfType <GameObject>())
            {
                if (obj.name.Contains("Patrol"))
                {
                    patrolPoints.Add(obj);
                }
            }
        }
コード例 #2
0
        public void FindTarget()
        {
            currentStates = detectPrey.changeState();

            if (currentStates == predStates.Hunt)
            {
                currentPrey = detectPrey.prey.transform;

                if (Vector2.Distance(gameObject.transform.position, target.target) <= 1 && detectPrey.prey.GetComponent <UtilityStates>().hidden == false)
                {
                    detectPrey.prey.GetComponent <UtilityStates>().dead = true;
                }

                if (detectPrey.prey.GetComponent <UtilityStates>().dead == true || detectPrey.prey.GetComponent <UtilityStates>().hidden == true)
                {
                    preyDetected    = false;
                    detectPrey.prey = null;
                }
            }

            if (currentStates == predStates.Patrol)
            {
                if (requestTarget)
                {
                    int i = 0;

                    i = Random.Range(0, patrolPoints.Count);

                    currentWayPoint = patrolPoints[i].transform;
                    requestTarget   = false;
                }

                if (Vector2.Distance(gameObject.transform.position, target.target) <= 1)
                {
                    requestTarget = true;
                }
            }
        }