2025-06-08 03:13:33 -04:00

53 lines
1.3 KiB
C#

using UdonSharp;
using UdonSharp.Examples.Utilities;
using UnityEditor;
using UnityEngine;
using VRC.SDK3.UdonNetworkCalling;
using VRC.Udon.Common.Interfaces;
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class ChoiceCard : UdonSharpBehaviour
{
[UdonSynced] public int ChoiceNumber = 0;
[SerializeField] private ChoiceCardGroup CardGroup = null;
[SerializeField] private Transform _SpawnPosition;
[SerializeField] private Transform _HeldPosition;
public override void OnPickup()
{
NetworkCalling.SendCustomNetworkEvent((IUdonEventReceiver)CardGroup, NetworkEventTarget.All, "ChoiceCardPickedUp", ChoiceNumber);
}
public override void Interact()
{
NetworkCalling.SendCustomNetworkEvent((IUdonEventReceiver)CardGroup, NetworkEventTarget.All, "ChoiceCardInteract", ChoiceNumber);
}
public void SetCardGroup(ChoiceCardGroup ParentCardGroup)
{
CardGroup = ParentCardGroup;
}
[NetworkCallable]
public void SetToHeldPosition()
{
transform.SetParent(_HeldPosition, false);
transform.localPosition = Vector3.zero;
transform.localEulerAngles = Vector3.zero;
InteractionText = "Reveal";
}
[NetworkCallable]
public void ResetPosition()
{
transform.SetParent(_SpawnPosition, false);
transform.localPosition = Vector3.zero;
transform.localEulerAngles = Vector3.zero;
InteractionText = "Choose";
}
}