public Transform RequestDestination() { // returns a proper destination for NPC to follow. Can interupt current path to take a new path. NPC_Pathfinder targetScriptRef = ChaseTarget.GetComponent <NPC_Pathfinder>(); if (NPCRef.currentCluster.transform.name != targetScriptRef.currentCluster.transform.name) { // then go to this cluster. isTargetInSameCluster = false; curDestinationCluster = targetScriptRef.closestNode.GetComponent <Node>().cluster.GetComponent <Cluster>().transform; if (useClosestORRandomClusterExit) { return(targetScriptRef.closestNode.GetComponent <Node>().cluster.GetComponent <Cluster>().GetFastestExit(transform.position, ChaseTarget.transform.position).transform); } else { Cluster temp = targetScriptRef.closestNode.GetComponent <Node>().cluster.GetComponent <Cluster>(); return(temp.clusterExits[Random.Range(0, temp.clusterExits.Count)].transform); } } else { //same cluster isTargetInSameCluster = true; return(targetScriptRef.FindClosestNode(ChaseTarget.transform.position).transform); } }
void Start() { NPCRef = GetComponent <NPC_Pathfinder>(); }