using UnityEngine;
using Unity.Netcode;
using Unity.XR.CoreUtils;
using UnityEngine.Events;
///
/// Simple Network Trigger syncing the events over the network when the local player enters the trigger collider.
///
public class NetworkTrigger : NetworkBehaviour
{
[SerializeField, Tooltip("This event is triggered when the Local Player walks into this.")] protected UnityEvent m_NetworkedTriggerUnityEvent;
void OnTriggerEnter(Collider other)
{
// Local Player Triggered
if (other.TryGetComponent(out XROrigin origin))
{
TriggerRpc(NetworkManager.Singleton.LocalClientId);
}
}
[Rpc(SendTo.Everyone)]
void TriggerRpc(ulong clientId)
{
m_NetworkedTriggerUnityEvent?.Invoke(clientId);
}
}