public static void createNoise(Vector3 location, float radius) { if (debug) { DebugScript.DrawCircle(100, radius, location, Color.cyan, 0.5f); } float sqrRadius = radius * radius; foreach (Listener listener in registeredListeners) { Vector3 soundOffset = location - listener.gameObject.transform.position; //Do easy, arithmatic only check to see if listener could possibly be close enough to hear if (Mathf.Abs(soundOffset.x) > radius || Mathf.Abs(soundOffset.y) > radius) { continue; } float sqrDistance = soundOffset.sqrMagnitude; if (sqrDistance <= sqrRadius * listener.soundRangeModifier) { listener.didHearSound(); } } }
void OnGUI() { if (debug) { DebugScript.DrawCircle(100, alertDistance, transform.position, Color.yellow); DebugScript.DrawCircle(100, startSeekDistance, transform.position, Color.red); GUI.Label(new Rect(10, 10, 200, 30), "State: " + currentState.ToString()); GUI.Label(new Rect(10, 30, 200, 30), "Patrol Point Index: " + currentPatrolPointIndex.ToString()); GUI.Label(new Rect(10, 50, 200, 30), "Alertness: " + alertTime.ToString("F1") + " ChickenCount: " + playingChickenCount.ToString()); foreach (Vector3 point in patrolPoints) { DebugScript.DrawCross(point, 0.5f, Color.green); } } }