NAK_CVR_Mods/DesktopVRSwitch/VRModeTrackers/CVRPickupObjectTracker.cs
2023-08-02 16:58:11 -05:00

33 lines
No EOL
876 B
C#

using ABI.CCK.Components;
using UnityEngine;
namespace NAK.DesktopVRSwitch.VRModeTrackers;
public class CVRPickupObjectTracker : MonoBehaviour
{
internal CVRPickupObject _pickupObject;
internal Transform _storedGripOrigin;
private void Start()
{
VRModeSwitchManager.OnPostVRModeSwitch += OnPostSwitch;
}
private void OnDestroy()
{
VRModeSwitchManager.OnPostVRModeSwitch -= OnPostSwitch;
}
public void OnPostSwitch(bool intoVR)
{
if (_pickupObject != null)
{
// Drop the object if it is being held locally
if (_pickupObject._controllerRay != null)
_pickupObject._controllerRay.DropObject(true);
// Swap the grip origins
(_storedGripOrigin, _pickupObject.gripOrigin) = (_pickupObject.gripOrigin, _storedGripOrigin);
}
}
}