private void Wander()
{
wanderTime += Time.deltaTime;
// critter.meshRendererFlag.material.color = Color.cyan;
if ((critter.transform.position.x <= -12.5f || critter.transform.position.x >= 12f) ||
(critter.transform.position.z <= -9 || critter.transform.position.z >= 9f ))
{
SetDurations();
ReturnToOrigin();
Application.ExternalCall("DebugMessage", "" + critter.ID.ToString() + " is out of range!! " + critter.transform.position.ToString() );
} else if ( critter.navMeshAgent.remainingDistance <= critter.navMeshAgent.stoppingDistance && !critter.navMeshAgent.pathPending)
{
direction = Random.insideUnitSphere * critter.maxWalkDistance;
direction += critter.transform.position;
// Sample the provided Mesh Area and get the nearest point
NavMesh.SamplePosition( direction, out hit, Random.Range( 0f, critter.maxWalkDistance), MeshArea );
critter.navMeshAgent.SetDestination( hit.position );
// Debug.Log (" Pick a point! " + critter.ID.ToString() + position);
}
Debug.Log(""+critter.ID.ToString() + "" + critter.transform.position.ToString());
if ( wanderTime >= wanderDuration )
{
ToIdleState();
}
}