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"; } }