- Home /
Patrol script yielding varying results?
I have multiple patrols (cops) in my scene. If they are all chasing you (all 3), and one catches you (touches you) and sends you to jail, the others (sometimes) freeze. I've been testing it and keep getting varying results so I think it is just down to a technical/syntaxual error I am ignorant to. I would appreciate a helpful set of eyes on this:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
using UnityEngine.UI;
public class PatrolScript : MonoBehaviour
{
public NavMeshAgent cop;
public GameObject Player;
public float FollowDistance = 20.0f;
public Transform[] patrolPoints;
private int currentPoint = 0;
public Vector3 jailPos;
public GameObject eye;
// public NavMeshAgent doggy;//
// public float dogDist = 0;
public float dist = 0;
void Start()
{
//dogDist = Vector3.Distance(cop.transform.position, doggy.transform.position);
dist = Vector3.Distance(Player.transform.position, cop.transform.position);
cop.destination = (patrolPoints[currentPoint].position);
}
void Update()
{
dist = Vector3.Distance(Player.transform.position, cop.transform.position);
//dogDist = Vector3.Distance(cop.transform.position, doggy.transform.position);
cop.destination = (GetDestination());
}
Vector3 GetDestination()
{
if (dogDist < 20f)
{
eye.SetActive(false);
Vector3 moveDir = cop.transform.position - doggy.transform.position;
return (moveDir.normalized * 8 * Time.deltaTime);
}
*/ PUT IN LATER
if (dist < FollowDistance)
{
eye.SetActive(true);
return Player.transform.position;
}
eye.SetActive(false);
if (!cop.pathPending && cop.remainingDistance < 0.5f)
{
currentPoint++;
if (currentPoint >= patrolPoints.Length)
{
currentPoint = 0;
}
return patrolPoints[currentPoint].position;
}else{
return cop.destination;
}
}
void OnTriggerEnter(Collider Cylinder)
{
sendToJail();
}
void sendToJail()
{
Player.transform.position = jailPos;
PlayerPrefs.SetInt("money", PlayerPrefs.GetInt("money") - 100);
PlayerPrefs.SetInt("points", 0);
//clear inv
}
}
//ADDING DOG LATER
Can't see any obvious mistakes. I'd suggest you add some debug logs to show if you actually update the cops destination or if it gets stuck. Also you will be able to see if it's always the same point and if yes whcih one it is.
Your answer
![](https://koobas.hobune.stream/wayback/20220612191013im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
NavMeshAgent "disables" Colliders 2 Answers
Can't click gameobject when over another trigger? 1 Answer
NavMesh problem it does not respond corectly 0 Answers
Which setup should I use for spawning? 0 Answers
Colliders that do not collide... 1 Answer