Untitled
unknown
plain_text
3 years ago
1.3 kB
9
Indexable
public NavMeshAgent agent;
[Header("Speed&Radius")]
[Range(0, 100)] public float speed;
[Range(1, 500)] public float walkRadius;
private bool isWandering = false;
public GameObject NavSphere;
[Header("Scripts")]
[SerializeField]
public KnifeController KnifeController;
[SerializeField]
public ReceiveDamageBAD ReceiveDamageBAD;
public void Start()
{
agent = GetComponent<NavMeshAgent>();
if(agent != null && KnifeController.currentTarget == null)
{
agent.speed = speed;
agent.SetDestination(RandomNavMeshLocation());
}
}
public void Update()
{
if (agent != null && agent.remainingDistance <= agent.stoppingDistance && KnifeController.currentTarget == null)
{
agent.SetDestination(RandomNavMeshLocation());
}
}
public Vector3 RandomNavMeshLocation()
{
Vector3 finalPosition = Vector3.zero;
Vector3 randomPosition =Random.insideUnitSphere * walkRadius;
randomPosition += transform.position;
if(NavMesh.SamplePosition(randomPosition, out NavMeshHit hit, walkRadius, 1))
{
finalPosition = hit.position;
}
return finalPosition;
}Editor is loading...