33 lines
935 B
C#
33 lines
935 B
C#
using UnityEngine;
|
|
|
|
namespace Hallucinate.AI
|
|
{
|
|
public class NoiseEmitter : MonoBehaviour
|
|
{
|
|
[Header("Settings")]
|
|
public float defaultNoiseRange = 10f;
|
|
public LayerMask npcLayer;
|
|
|
|
public void EmitNoise(float volumeMultiplier = 1f)
|
|
{
|
|
float range = defaultNoiseRange * volumeMultiplier;
|
|
Collider[] hitColliders = Physics.OverlapSphere(transform.position, range, npcLayer);
|
|
|
|
foreach (var hit in hitColliders)
|
|
{
|
|
EnemyAI npc = hit.GetComponentInParent<EnemyAI>();
|
|
if (npc != null)
|
|
{
|
|
npc.HearNoise(transform.position, volumeMultiplier);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void OnDrawGizmosSelected()
|
|
{
|
|
Gizmos.color = new Color(1, 1, 0, 0.3f);
|
|
Gizmos.DrawWireSphere(transform.position, defaultNoiseRange);
|
|
}
|
|
}
|
|
}
|