Files
VOIDRPG/Assets/90 - Scripts/Generic/Objects/Unit/Senses/UnitHear.cs
T
2026-07-09 21:33:33 +02:00

39 lines
1.4 KiB
C#

using UnityEngine;
using VOID.Generic.Objects.Abstract;
using VOID.Generic.Objects.Unit.Events;
using VOID.Generic.Triggers;
namespace VOID.Generic.Objects.Unit.AI
{
public class UnitHear : MonoBehaviour, IDynamicTrigger
{
private UnitObject _forUnit;
public static void Create(UnitObject forUnit)
{
var sightGameObject = new GameObject("_hear");
sightGameObject.transform.parent = forUnit.transform;
sightGameObject.transform.position = forUnit.transform.position;
sightGameObject.layer = LayerManager.TriggerIndex;
var sightCollider = sightGameObject.AddComponent<SphereCollider>();
sightCollider.radius = forUnit.unitData.subAttributes.hear;
sightCollider.includeLayers = LayerManager.Dynamic;
var unitSight = sightGameObject.AddComponent<UnitHear>();
unitSight._forUnit = forUnit;
}
public void OnObjectEnter(AbstractObject obj)
{
if (_forUnit == obj) return;
_forUnit.unitEvents.onHearEnter.Invoke(new SenseHearEvent { unit = _forUnit, hearObject = obj });
}
public void OnObjectExit(AbstractObject obj)
{
if (_forUnit == obj) return;
_forUnit.unitEvents.onHearExit.Invoke(new SenseHearEvent { unit = _forUnit, hearObject = obj });
}
}
}