Пример #1
0
    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();
            }
        }
    }
Пример #2
0
    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);
            }
        }
    }