Files
RoomAwareVR/Assets/VRMPAssets/Scripts/Network/NetworkUtilityComponents/NetworkTrigger.cs
T
2025-05-26 00:46:28 +02:00

27 lines
799 B
C#

using UnityEngine;
using Unity.Netcode;
using Unity.XR.CoreUtils;
using UnityEngine.Events;
/// <summary>
/// Simple Network Trigger syncing the events over the network when the local player enters the trigger collider.
/// </summary>
public class NetworkTrigger : NetworkBehaviour
{
[SerializeField, Tooltip("This event is triggered when the Local Player walks into this.")] protected UnityEvent<ulong> 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);
}
}