Files
Silly-Home/Packages/com.vrchat.worlds/Runtime/Udon/Dynamics/ContactReceiverUdonEmitter.cs
2026-06-07 16:58:24 +01:00

35 lines
1.1 KiB
C#

using UnityEngine;
using VRC.Udon.Common.Interfaces;
namespace VRC.Dynamics
{
public class ContactReceiverUdonEmitter : IContactReceiverUdonEmitter
{
private readonly IUdonBehaviour[] _udonBehaviours;
private const string EventOnContactEnter = "_onContactEnter";
private const string EventOnContactExit = "_onContactExit";
public ContactReceiverUdonEmitter(GameObject hostGameObject)
{
_udonBehaviours = hostGameObject.GetComponents<IUdonBehaviour>();
}
public void OnContactEnter(ContactEnterInfo contactInfo)
{
foreach (IUdonBehaviour udonBehaviour in _udonBehaviours)
{
udonBehaviour.RunEvent(EventOnContactEnter, ("contactInfo", contactInfo));
}
}
public void OnContactExit(ContactExitInfo contactInfo)
{
foreach (IUdonBehaviour udonBehaviour in _udonBehaviours)
{
udonBehaviour.RunEvent(EventOnContactExit, ("contactInfo", contactInfo));
}
}
}
}