using UdonSharp; using UnityEngine; using VRC.SDKBase; [UdonBehaviourSyncMode(BehaviourSyncMode.None)] public class PickupUseCallback : UdonSharpBehaviour { [SerializeField] private UdonSharpBehaviour _CallbackObject; [Space] [SerializeField] private string _OnPickupCallbackFunction; [SerializeField] private string _OnDropCallbackFunction; [SerializeField] private string _UseDownCallbackFunction; [SerializeField] private string _UseUpCallbackFunction; public override void OnPickup() { if (_OnPickupCallbackFunction != "" && Utilities.IsValid(_CallbackObject)) { _CallbackObject.SendCustomEvent(_OnPickupCallbackFunction); } base.OnPickup(); } public override void OnDrop() { if (_OnDropCallbackFunction != "" && Utilities.IsValid(_CallbackObject)) { _CallbackObject.SendCustomEvent(_OnDropCallbackFunction); } base.OnDrop(); } public override void OnPickupUseDown() { if (_UseDownCallbackFunction != "" && Utilities.IsValid(_CallbackObject)) { _CallbackObject.SendCustomEvent(_UseDownCallbackFunction); } base.OnPickupUseDown(); } public override void OnPickupUseUp() { if (_UseUpCallbackFunction != "" && Utilities.IsValid(_CallbackObject)) { _CallbackObject.SendCustomEvent(_UseUpCallbackFunction); } base.OnPickupUseUp(); } }