1using System.Collections;
2using System.Collections.Generic;
7using Valve.VR.InteractionSystem;
12 internal Vector3 startPosition;
13 internal Vector3 startRotation;
22 internal GameObject NewParent;
23 internal bool Reparent =
false;
29 private Interactable inter;
31 private bool _finished =
false;
36 tcd = GetComponent<ThrowableCanDisable>();
37 inter = GetComponent<Interactable>();
41 void Instance_OnStageChanged(
int stage)
54 if (_finished)
return;
62 inter.attachedToHand.DetachObject(gameObject);
63 inter.highlightOnHover =
false;
64 inter.enabled =
false;
67 StartCoroutine(LerpPlace());
72 private IEnumerator LerpPlace()
77 time += Time.deltaTime;
79 transform.eulerAngles =
Vector3.LerpUnclamped(transform.eulerAngles,
FinalRotation, time / 0.5f);
83 if (Reparent && NewParent)
85 transform.parent = NewParent.transform;
90 internal void SaveStartPos()
92 startPosition = transform.position;
93 startRotation = transform.eulerAngles;
96 internal void SaveFinalPos()
105 internal void RestoreStartPos()
107 transform.position = startPosition;
108 transform.eulerAngles = startRotation;
111 internal void RestoreFinalPos()
120public class PositionerInspector : Editor
124 public override void OnInspectorGUI ()
126 DrawDefaultInspector();
129 GUILayout.BeginHorizontal();
130 if (GUILayout.Button(
"Save Start Pos"))
132 myTarget.startPosition = myTarget.transform.position;
133 myTarget.startRotation = myTarget.transform.eulerAngles;
135 if (GUILayout.Button(
"Save Final Pos"))
140 GUILayout.EndHorizontal();
141 GUILayout.BeginHorizontal();
142 if (GUILayout.Button(
"Restore to Start"))
144 myTarget.transform.position = myTarget.startPosition;
145 myTarget.transform.eulerAngles = myTarget.startRotation;
147 if (GUILayout.Button(
"Restore to Final"))
152 GUILayout.EndHorizontal();
UnityEvent InGoodPosition