2using System.Collections;
3using System.Collections.Generic;
7using NaughtyAttributes;
12using Valve.VR.InteractionSystem;
37 [SerializeField]
private bool EditorForceVarjo =
false;
47 yield
return new WaitForSeconds(0.5f);
51 yield
return new WaitForEndOfFrame();
54 var player = GameObject.Find(
"Player");
57 yield
return new WaitForSeconds(0.1f);
58 player = GameObject.Find(
"Player");
66 foreach (var o
in left)
74 foreach (var o
in right)
81 var model =
new StringBuilder(128);
82 var manufacturer =
new StringBuilder(128);
83 ETrackedPropertyError error = ETrackedPropertyError.TrackedProp_Success;
84 for (uint i = 0; i < 17; i++)
89 if (OpenVR.System !=
null)
91 OpenVR.System.GetStringTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_ModelNumber_String,
94 OpenVR.System.GetStringTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_ManufacturerName_String,
97 var deviceclass = OpenVR.System.GetTrackedDeviceClass(i);
99 if (deviceclass == ETrackedDeviceClass.HMD && manufacturer.ToString() ==
"Varjo" && model.ToString() ==
"hedy")
114 yield
return new WaitForEndOfFrame();
118 foreach (var tcd
in allTcd)
124 if (EditorForceVarjo)
137 GameObject.Find(
"SteamVR_Tracker")?.SetActive(
false);
140 internal bool canTeleport =
true;
162 teleport[0].transform.localScale = size;
173 VRPopupManager.
instance.SetText(
Macro.
T(
"LEVEL_FAILED") + (time == 0.0f ?
"" :
"\n" +
Macro.
T(
"YOUR_TIME")+
": " + Mathf.FloorToInt(time / 60).ToString(
"D2") +
":" + (time % 60).ToString(
"00.00").Replace(
',',
'.')));
182 public void LevelEnded(
float time = 0.0f,
float accuracy = 0.0f,
float focus = 0.0f,
float performance = 0.0f)
185 VRPopupManager.
instance.SetText(
Macro.
T(
"LEVEL_ENDED") + (time == 0.0f ?
"" :
"\n" +
Macro.
T(
"YOUR_TIME") +
": " + Mathf.FloorToInt(time / 60).ToString(
"D2") +
":" + (time % 60).ToString(
"00.00").Replace(
',',
'.')));
188 Mathf.FloorToInt(time / 60).ToString(
"D2") +
":" + (time % 60).ToString(
"00.00").Replace(
',',
'.'),
189 Mathf.FloorToInt(accuracy).ToString(
"D0") +
"%",
190 Mathf.FloorToInt(focus).ToString(
"D0") +
"%",
191 Mathf.FloorToInt(performance).ToString(
"D0") +
"%");
200 TurnOnReplayButton();
208 private static void TurnOnReplayButton()
211 var iris = GameObject.Find(
"iris_position_helper");
213 var replay = iris.transform.GetComponentsInChildren<InteractableHoverEvents>(
true);
214 foreach (var interactableHoverEventse
in replay)
216 if (interactableHoverEventse.name ==
"ReplayPOI")
218 interactableHoverEventse.gameObject.SetActive(
true);
224 public void OffsetEditorHelper(Transform attachPoint, GameObject objectToGrab,
OffsetHolder offsetHolder, Canvas canvas, Canvas canvasOffsetEditor,
bool editingLeft)
226 StartCoroutine(offsetEditorHelper(attachPoint, objectToGrab, offsetHolder, canvas, canvasOffsetEditor, editingLeft));
230 StartCoroutine(offsetEditorHelper(attachPoint, objectToGrab, offsetHolder, canvas, canvasOffsetEditor, editingLeft));
233 private IEnumerator offsetEditorHelper(Transform attachPoint, GameObject objectToGrab,
OffsetHolder offsetHolder, Canvas canvas, Canvas canvasOffsetEditor,
bool editingLeft)
235 attachPoint.transform.SetParent(objectToGrab.transform,
true);
240 offsetHolder.
LeftOffset = attachPoint.localPosition;
241 offsetHolder.
LeftRotation = attachPoint.localRotation.eulerAngles;
245 offsetHolder.
Offset = attachPoint.localPosition;
246 offsetHolder.
Rotation = attachPoint.localRotation.eulerAngles;
249 if (attachPoint.gameObject !=
null) Destroy(attachPoint.gameObject);
253 canvas.enabled =
true;
254 canvasOffsetEditor.enabled =
false;
257 private IEnumerator offsetEditorHelper(Transform attachPoint, GameObject objectToGrab,
GameObjectAction offsetHolder, Canvas canvas, Canvas canvasOffsetEditor,
bool editingLeft)
259 attachPoint.transform.SetParent(objectToGrab.transform,
true);
264 offsetHolder.
LeftOffset = attachPoint.localPosition;
265 offsetHolder.
LeftRotation = attachPoint.localRotation.eulerAngles;
269 offsetHolder.
Offset = attachPoint.localPosition;
270 offsetHolder.
Rotation = attachPoint.localRotation.eulerAngles;
273 if (attachPoint.gameObject !=
null) Destroy(attachPoint.gameObject);
277 canvas.enabled =
true;
278 canvasOffsetEditor.enabled =
false;
UnityEngine.UI.Button Button
static void SetSelection(IEnumerable< GameObject > selection)
static string T(string key)
static void cacheAllTCD()
void HideTrackerAndPrompt()
void CanUseTeleport(bool value)
Vector3 GetTeleportSize()
void OffsetEditorHelper(Transform attachPoint, GameObject objectToGrab, OffsetHolder offsetHolder, Canvas canvas, Canvas canvasOffsetEditor, bool editingLeft)
void LevelFailed(float time=0.0f)
void SetTeleportSize(Vector3 size)
void LevelEnded(float time=0.0f, float accuracy=0.0f, float focus=0.0f, float performance=0.0f)
Callback onLoadingFinished
void OffsetEditorHelper(Transform attachPoint, GameObject objectToGrab, GameObjectAction offsetHolder, Canvas canvas, Canvas canvasOffsetEditor, bool editingLeft)