using UnityEngine; using System.Collections; public class AI_Wanders : WeightedAction { AI_Core myAI; GameObject nearestPlayer; private float waitTime; public float startWaitTime; Vector3 patrolSpot; float minX, maxX, minY, maxY; private float journeyLength; public float patrolRange; public float speed; private float startTime; // Use this for initialization void Start() { myAI = GetComponent(); waitTime = startWaitTime; minX = transform.position.x - patrolRange; maxX = transform.position.x + patrolRange; minY = transform.position.y - patrolRange; maxY = transform.position.y + patrolRange; patrolSpot = new Vector3(Random.Range(minX, maxX), Random.Range(minY, maxY), -1); //startTime = Time.time; } //AI wanders arround when its in detection range of the player void CheckConditions() { myAI.desiredAction.Add(this); } public override void performAction() { transform.position = Vector2.MoveTowards(transform.position, patrolSpot, speed * Time.deltaTime); if (Vector2.Distance(transform.position, patrolSpot) < 0.2f) { if (waitTime <= 0) { //journeyLength = Vector3.Distance(transform.position, patrolSpot); //startTime = Time.time; waitTime = startWaitTime; patrolSpot = new Vector3(Random.Range(minX, maxX), Random.Range(minY, maxY), -1); } else { waitTime -= Time.deltaTime; } } } private void OnCollisionStay2D(Collision2D collision) { patrolSpot = new Vector3(Random.Range(minX, maxX), Random.Range(minY, maxY), -1); } }