From 88b2fde559c662d8f81d9d9785ed29fe0934d89c Mon Sep 17 00:00:00 2001 From: srl87 Date: Wed, 29 Nov 2023 11:12:03 +0800 Subject: [PATCH] version 5.5.0-r.10 --- .../Editor/EssenceSettingsProvider.cs | 30 +- .../Runtime/Scripts/Definitions.cs | 3 + .../Scripts/HandTracking/HandManager.cs | 328 +- .../Scripts/Raycast/GazeRaycastRing.cs | 47 +- .../Scripts/Raycast/HandRaycastPointer.cs | 60 +- .../Runtime/Scripts/SystemEvent.cs | 5 +- .../Runtime/Scripts/Tracker/TrackerManager.cs | 56 +- .../Runtime/Scripts/Tracker/TrackerUtils.cs | 25 + .../Runtime/Scripts/WaveEssence.cs | 4 +- .../Runtime/Scripts/WaveRig.cs | 122 +- .../Scripts/InputSystem/AxisUsage.cs | 2 + .../Scripts/InputSystem/PressUsage.cs | 2 + .../Scripts/InputSystem/StickUsage.cs | 2 + .../Scripts/InputSystem/TouchUsage.cs | 2 + .../Essence/PassThrough/PassThrough.unity | 1028 +++++-- .../Scripts/ActivatePassThrough.cs | 18 + .../Essence/Raycast/RaycastEyeTracking.unity | 684 ++++- .../Essence/Raycast/Scripts/PinchText.cs | 63 + .../Essence/Raycast/Scripts/PinchText.cs.meta | 11 + .../Raycast/Scripts/ToggleActionPinch.cs | 40 + .../Raycast/Scripts/ToggleActionPinch.cs.meta | 11 + .../wave_essence_bodytracking.unitypackage | 4 +- .../wave_essence_bundlepreview.unitypackage | 4 +- .../wave_essence_cameratexture.unitypackage | 4 +- .../wave_essence_compositorlayer.unitypackage | 4 +- ...wave_essence_controller_model.unitypackage | 4 +- .../wave_essence_hand_model.unitypackage | 4 +- .../wave_essence_inputmodule.unitypackage | 4 +- ...wave_essence_interaction_mode.unitypackage | 4 +- ...e_essence_interaction_toolkit.unitypackage | 4 +- .../wave_essence_renderdoc.unitypackage | 4 +- .../wave_essence_sceneperception.unitypackage | 4 +- .../wave_essence_spectator.unitypackage | 4 +- .../wave_essence_trackablemarker.unitypackage | 4 +- .../wave_essence_tracker_model.unitypackage | 4 +- com.htc.upm.wave.essence/package.json | 6 +- com.htc.upm.wave.essence/package.tm1 | 6 +- com.htc.upm.wave.essence/package.tm1.meta | 2 +- .../Runtime/Scripts/WVR_Android.cs | 9 + .../Runtime/Scripts/WVR_EditorImpl.cs | 3 +- .../Runtime/Scripts/wvr.cs | 25 + com.htc.upm.wave.native/package.json | 4 +- com.htc.upm.wave.native/package.tm1 | 4 +- com.htc.upm.wave.native/package.tm1.meta | 2 +- .../Editor/WaveXRBuildCheck.cs | 7 +- .../Editor/WaveXRBuildProcessor.cs | 84 +- .../WaveXRPlayerSettingsConfigDialog.cs | 18 +- .../Editor/WaveXRSettingsEditor.cs | 128 +- .../Editor/XRSDKSettingsProvider.cs | 31 +- .../Android/arm64-v8a/libGfxWXRUnity.so | 2 +- .../Android/arm64-v8a/libwvrunityxr.so | 4 +- .../Android/arm64-v8a/libwvrxrplugin.so | 2 +- .../Android/armeabi-v7a/libGfxWXRUnity.so | 3 - .../armeabi-v7a/libGfxWXRUnity.so.meta | 70 - .../Android/armeabi-v7a/libwvrunityxr.so | 3 - .../Android/armeabi-v7a/libwvrunityxr.so.meta | 82 - .../Android/armeabi-v7a/libwvrxrplugin.so | 3 - .../armeabi-v7a/libwvrxrplugin.so.meta | 70 - .../Runtime/Android/vr.client.abi.aar | 4 +- .../Runtime/Android/wvr.common.utils.aar | 4 +- .../Runtime/Android/wvr_client.aar | 4 +- .../Runtime/Android/wvr_ime_client.aar | 2 +- .../Runtime/Android/wvr_permission_client.aar | 4 +- .../Runtime/Android/wvr_unity_plugin_2017.aar | 4 +- .../Runtime/Android/wvr_unity_plugin_2022.aar | 4 +- .../Editor/CheckDirectPreviewOptions.cs | 4 +- .../Scripts/DirectPreviewCore.cs | 52 +- .../Scripts/DirectPreviewRender.cs | 432 ++- .../Runtime/GitIgnored/Resources.meta | 2 +- .../GitIgnored/Resources/commit_info.json | 6 +- .../Resources/commit_info.json.meta | 2 +- .../Runtime/MRTKSupport.meta | 8 + .../Runtime/MRTKSupport/2.8.3.meta | 8 + .../[Unity] Set Up MRTK2 For VIVE Wave.pdf | Bin 0 -> 131 bytes ...Unity] Set Up MRTK2 For VIVE Wave.pdf.meta | 7 + .../2.8.3/wave_xrsdk_mrtksupport.unitypackage | 3 + .../wave_xrsdk_mrtksupport.unitypackage.meta | 7 + .../Runtime/MRTKSupport/3.0.0.meta | 8 + .../[Unity] Set Up MRTK3 For VIVE Wave.pdf | Bin 0 -> 131 bytes ...Unity] Set Up MRTK3 For VIVE Wave.pdf.meta | 7 + .../3.0.0/wave_xrsdk_mrtksupport.unitypackage | 3 + .../wave_xrsdk_mrtksupport.unitypackage.meta | 7 + .../Runtime/RenderThreadTask.cs | 54 +- com.htc.upm.wave.xrsdk/Runtime/WaveXRHand.cs | 335 ++- .../Runtime/WaveXRLoader.cs | 25 +- .../Runtime/WaveXRRuntimeInitializeOnLoad.cs | 5 +- .../Runtime/WaveXRSpectatorCameraHandle.cs | 4 +- .../Runtime/Windows/x64/wvrunityxr.dll | 4 +- .../Scripts/WaveXR_KeyboardMouseControl.cs | 55 +- .../PureUnity/Common/Scripts/WaveXR_Utils.cs | 24 +- .../Mirror/Materials/WaveXRMirror.shader | 5 +- .../PureUnity/Mirror/Scenes/MirrorTest.unity | 31 +- .../PureUnity/Mirror/Scripts/WaveXRMirror.cs | 247 +- .../Scripts/StereoRenderModeHandle.cs | 10 +- .../XR/XR/Controller/ControllerLegacy.unity | 14 +- .../XR/Controller/Scripts/ActionToButton.cs | 2 +- .../XR/XR/Controller/Scripts/Utils.cs | 44 +- .../Samples~/XR/XR/Tracker.meta | 8 + .../Samples~/XR/XR/Tracker/Scripts.meta | 8 + .../XR/XR/Tracker/Scripts/QuitApplication.cs | 28 + .../Tracker/Scripts/QuitApplication.cs.meta | 11 + .../Tracker/Scripts/TrackerDeviceManager.cs | 61 + .../Scripts/TrackerDeviceManager.cs.meta | 11 + .../XR/XR/Tracker/Scripts/TrackerPose.cs | 38 + .../XR/XR/Tracker/Scripts/TrackerPose.cs.meta | 11 + .../XR/XR/Tracker/Scripts/TrackerText.cs | 187 ++ .../XR/XR/Tracker/Scripts/TrackerText.cs.meta | 11 + .../XR/Tracker/Scripts/TrackerTextManager.cs | 125 + .../Scripts/TrackerTextManager.cs.meta | 11 + .../Samples~/XR/XR/Tracker/TrackersXR.unity | 2647 +++++++++++++++++ .../XR/XR/Tracker/TrackersXR.unity.meta | 7 + .../wave_xrsdk_androidmanifest.unitypackage | 4 +- com.htc.upm.wave.xrsdk/package.json | 2 +- com.htc.upm.wave.xrsdk/package.tm1 | 2 +- com.htc.upm.wave.xrsdk/package.tm1.meta | 2 +- 115 files changed, 6429 insertions(+), 1353 deletions(-) create mode 100644 com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/Scripts/PinchText.cs create mode 100644 com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/Scripts/PinchText.cs.meta create mode 100644 com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/Scripts/ToggleActionPinch.cs create mode 100644 com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/Scripts/ToggleActionPinch.cs.meta delete mode 100644 com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libGfxWXRUnity.so delete mode 100644 com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libGfxWXRUnity.so.meta delete mode 100644 com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libwvrunityxr.so delete mode 100644 com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libwvrunityxr.so.meta delete mode 100644 com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libwvrxrplugin.so delete mode 100644 com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libwvrxrplugin.so.meta create mode 100644 com.htc.upm.wave.xrsdk/Runtime/MRTKSupport.meta create mode 100644 com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/2.8.3.meta create mode 100644 com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/2.8.3/[Unity] Set Up MRTK2 For VIVE Wave.pdf create mode 100644 com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/2.8.3/[Unity] Set Up MRTK2 For VIVE Wave.pdf.meta create mode 100644 com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/2.8.3/wave_xrsdk_mrtksupport.unitypackage create mode 100644 com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/2.8.3/wave_xrsdk_mrtksupport.unitypackage.meta create mode 100644 com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/3.0.0.meta create mode 100644 com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/3.0.0/[Unity] Set Up MRTK3 For VIVE Wave.pdf create mode 100644 com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/3.0.0/[Unity] Set Up MRTK3 For VIVE Wave.pdf.meta create mode 100644 com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/3.0.0/wave_xrsdk_mrtksupport.unitypackage create mode 100644 com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/3.0.0/wave_xrsdk_mrtksupport.unitypackage.meta create mode 100644 com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker.meta create mode 100644 com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts.meta create mode 100644 com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/QuitApplication.cs create mode 100644 com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/QuitApplication.cs.meta create mode 100644 com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerDeviceManager.cs create mode 100644 com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerDeviceManager.cs.meta create mode 100644 com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerPose.cs create mode 100644 com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerPose.cs.meta create mode 100644 com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerText.cs create mode 100644 com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerText.cs.meta create mode 100644 com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerTextManager.cs create mode 100644 com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerTextManager.cs.meta create mode 100644 com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/TrackersXR.unity create mode 100644 com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/TrackersXR.unity.meta diff --git a/com.htc.upm.wave.essence/Editor/EssenceSettingsProvider.cs b/com.htc.upm.wave.essence/Editor/EssenceSettingsProvider.cs index e503fcf4..aadf24ba 100644 --- a/com.htc.upm.wave.essence/Editor/EssenceSettingsProvider.cs +++ b/com.htc.upm.wave.essence/Editor/EssenceSettingsProvider.cs @@ -464,7 +464,17 @@ public override void OnGUI(string searchContext) GUILayout.Space(5f); if (GUILayout.Button("Check packages", GUILayout.ExpandWidth(false))) EssenseSettingsConfigDialog.ShowDialog(); - GUILayout.Space(5f); + + bool b = EditorPrefs.GetBool("EssenceNotifyUpdatePackageSkip", false); + if (GUILayout.Toggle(b, "Do not auto check package update")) + { + EditorPrefs.SetBool("EssenceNotifyUpdatePackageSkip", true); + } + else + { + EditorPrefs.SetBool("EssenceNotifyUpdatePackageSkip", false); + } + GUILayout.Space(5f); } GUILayout.EndVertical(); @@ -1305,6 +1315,12 @@ public static void ShowDialog() static void Update() { Debug.Log("Check for Essense Settings Update."); + if (EditorPrefs.GetBool("EssenceNotifyUpdatePackageSkip", false)) + { + Debug.Log("Skip Essense Settings Update. EssenceNotifyUpdatePackageSkip=true"); + EditorApplication.update -= Update; + return; + } EssenceSettingsProvider.Init(); EssenceSettingsProvider.checkFeaturePackages(); var items = GetItems(); @@ -1377,6 +1393,18 @@ public void OnGUI() GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); + { + bool b = EditorPrefs.GetBool("EssenceNotifyUpdatePackageSkip", false); + if (GUILayout.Toggle(b, "Don't show me again")) + { + EditorPrefs.SetBool("EssenceNotifyUpdatePackageSkip", true); + } + else + { + EditorPrefs.SetBool("EssenceNotifyUpdatePackageSkip", false); + } + } + if (notReadyItems > 0) { if (GUILayout.Button("Update All")) diff --git a/com.htc.upm.wave.essence/Runtime/Scripts/Definitions.cs b/com.htc.upm.wave.essence/Runtime/Scripts/Definitions.cs index c995d52c..c365d09b 100644 --- a/com.htc.upm.wave.essence/Runtime/Scripts/Definitions.cs +++ b/com.htc.upm.wave.essence/Runtime/Scripts/Definitions.cs @@ -58,6 +58,7 @@ public class XR_Feature // A binary value representing the Thumbstick touch state. public static readonly InputFeatureUsage secondary2DAxisTouch = CommonUsages.secondary2DAxisTouch; + public static readonly InputFeatureUsage triggerTouch = new InputFeatureUsage("TriggerTouch"); // A float value representing the Trigger axis. public static readonly InputFeatureUsage trigger = CommonUsages.trigger; // A float value representing the Grip axis. @@ -95,6 +96,8 @@ public class XR_BinaryButton public const string gripButtonName = "GripButton"; public static readonly InputFeatureUsage triggerButton = XR_Feature.triggerButton; public const string triggerButtonName = "TriggerButton"; + public static readonly InputFeatureUsage triggerTouch = XR_Feature.triggerTouch; + public const string triggerTouchName = "TriggerTouch"; public static readonly InputFeatureUsage menuButton = XR_Feature.menuButton; public const string menuButtonName = "MenuButton"; public static readonly InputFeatureUsage primary2DAxisClick = XR_Feature.primary2DAxisClick; diff --git a/com.htc.upm.wave.essence/Runtime/Scripts/HandTracking/HandManager.cs b/com.htc.upm.wave.essence/Runtime/Scripts/HandTracking/HandManager.cs index 7c066ec6..846ea85b 100644 --- a/com.htc.upm.wave.essence/Runtime/Scripts/HandTracking/HandManager.cs +++ b/com.htc.upm.wave.essence/Runtime/Scripts/HandTracking/HandManager.cs @@ -17,7 +17,6 @@ using Wave.Essence.Events; using Wave.XR.Function; using Wave.XR.Settings; -using System.Diagnostics; using UnityEngine.Profiling; using Wave.OpenXR; @@ -264,26 +263,6 @@ public class TrackerOption private ConvertHandTrackingDataToUnityDelegate ConvertHandTrackingDataToUnity = null; - #region Wave XR Constants - const string kWristLinearVelocityLeftX = "WristLinearVelocityLeftX", kWristLinearVelocityLeftY = "WristLinearVelocityLeftY", kWristLinearVelocityLeftZ = "WristLinearVelocityLeftZ"; - const string kWristLinearVelocityRightX = "WristLinearVelocityRightX", kWristLinearVelocityRightY = "WristLinearVelocityRightY", kWristLinearVelocityRightZ = "WristLinearVelocityRightZ"; - const string kWristAngularVelocityLeftX = "WristAngularVelocityLeftX", kWristAngularVelocityLeftY = "WristAngularVelocityLeftY", kWristAngularVelocityLeftZ = "WristAngularVelocityLeftZ"; - const string kWristAngularVelocityRightX = "WristAngularVelocityRightX", kWristAngularVelocityRightY = "WristAngularVelocityRightY", kWristAngularVelocityRightZ = "WristAngularVelocityRightZ"; - const string kHandMotionLeft = "HandMotionLeft"; - const string kHandMotionRight = "HandMotionRight"; - const string kHandRoleLeft = "HandRoleLeft"; - const string kHandRoleRight = "HandRoleRight"; - const string kHandObjectLeft = "HandObjectLeft"; - const string kHandObjectRight = "HandObjectRight"; - const string kHandOriginLeftX = "HandOriginLeftX", kHandOriginLeftY = "HandOriginLeftY", kHandOriginLeftZ = "HandOriginLeftZ"; - const string kHandOriginRightX = "HandOriginRightX", kHandOriginRightY = "HandOriginRightY", kHandOriginRightZ = "HandOriginRightZ"; - const string kHandDirectionLeftX = "HandDirectionLeftX", kHandDirectionLeftY = "HandDirectionLeftY", kHandDirectionLeftZ = "HandDirectionLeftZ"; - const string kHandDirectionRightX = "HandDirectionRightX", kHandDirectionRightY = "HandDirectionRightY", kHandDirectionRightZ = "HandDirectionRightZ"; - const string kHandStrengthLeft = "HandStrengthLeft"; - const string kHandStrengthRight = "HandStrengthRight"; - const string kHandPinchThreshold = "HandPinchThreshold"; - #endregion - void Awake() { sb.Clear().Append("Awake()"); DEBUG(sb); @@ -1217,40 +1196,43 @@ public bool IsHandPoseValid(bool isLeft, out long timestamp) } #endregion #region Confidence - /// - /// Retrieves left/right hand's confidence of a tracker. - /// - /// Natural or electronic tracker. - /// True for left hand. - /// A float {0, 1} value where 1 means the most reliable. - public float GetHandConfidence(TrackerType tracker, bool isLeft) + public bool GetHandConfidence(TrackerType tracker, bool isLeft, out float confidence) { + confidence = 0; + if (UseXRData(tracker)) { - return InputDeviceHand.GetHandConfidence(isLeft); + return InputDeviceHand.GetHandConfidence(isLeft, out confidence); } if (tracker == TrackerType.Natural) { if (hasNaturalHandTrackerData && hasNaturalTrackerInfo) { - if (isLeft) - return m_NaturalHandTrackerData.left.confidence; - else - return m_NaturalHandTrackerData.right.confidence; + confidence = isLeft ? m_NaturalHandTrackerData.left.confidence : m_NaturalHandTrackerData.right.confidence; + return true; } } if (tracker == TrackerType.Electronic) { if (hasElectronicHandTrackerData && hasElectronicTrackerInfo) { - if (isLeft) - return m_ElectronicHandTrackerData.left.confidence; - else - return m_ElectronicHandTrackerData.right.confidence; + confidence = isLeft ? m_ElectronicHandTrackerData.left.confidence : m_ElectronicHandTrackerData.right.confidence; + return true; } } + return false; + } + /// + /// Retrieves left/right hand's confidence of a tracker. + /// + /// Natural or electronic tracker. + /// True for left hand. + /// A float {0, 1} value where 1 means the most reliable. + public float GetHandConfidence(TrackerType tracker, bool isLeft) + { + if (GetHandConfidence(tracker, isLeft, out float confidence)) { return confidence; } return 0; } public float GetHandConfidence(TrackerType tracker, HandType hand) @@ -1623,23 +1605,7 @@ public bool GetWristLinearVelocity(TrackerType tracker, ref Vector3 velocity, bo if (UseXRData(tracker)) { - float velocity_x = 0, velocity_y = 0, velocity_z = 0; - if (isLeft) - { - SettingsHelper.GetFloat(kWristLinearVelocityLeftX, ref velocity_x); - SettingsHelper.GetFloat(kWristLinearVelocityLeftY, ref velocity_y); - SettingsHelper.GetFloat(kWristLinearVelocityLeftZ, ref velocity_z); - } - else - { - SettingsHelper.GetFloat(kWristLinearVelocityRightX, ref velocity_x); - SettingsHelper.GetFloat(kWristLinearVelocityRightY, ref velocity_y); - SettingsHelper.GetFloat(kWristLinearVelocityRightZ, ref velocity_z); - } - velocity.x = velocity_x; - velocity.y = velocity_y; - velocity.z = velocity_z; - return true; + return InputDeviceHand.GetWristLinearVelocity(isLeft, out velocity); } bool ret = false; @@ -1711,23 +1677,7 @@ public bool GetWristAngularVelocity(TrackerType tracker, ref Vector3 velocity, b if (UseXRData(tracker)) { - float velocity_x = 0, velocity_y = 0, velocity_z = 0; - if (isLeft) - { - SettingsHelper.GetFloat(kWristAngularVelocityLeftX, ref velocity_x); - SettingsHelper.GetFloat(kWristAngularVelocityLeftY, ref velocity_y); - SettingsHelper.GetFloat(kWristAngularVelocityLeftZ, ref velocity_z); - } - else - { - SettingsHelper.GetFloat(kWristAngularVelocityRightX, ref velocity_x); - SettingsHelper.GetFloat(kWristAngularVelocityRightY, ref velocity_y); - SettingsHelper.GetFloat(kWristAngularVelocityRightZ, ref velocity_z); - } - velocity.x = velocity_x; - velocity.y = velocity_y; - velocity.z = velocity_z; - return true; + return InputDeviceHand.GetWristAngularVelocity(isLeft, out velocity); } bool ret = false; @@ -1840,16 +1790,12 @@ public bool GetHandMotion(TrackerType tracker, out HandMotion motion, bool isLef if (UseXRData(tracker)) { - uint motionId = (uint)motion; - - if (isLeft) - SettingsHelper.GetInt(kHandMotionLeft, ref motionId); - else - SettingsHelper.GetInt(kHandMotionRight, ref motionId); - - if (motionId == 1) { motion = HandMotion.Pinch; } - if (motionId == 2) { motion = HandMotion.Hold; } - return true; + if (InputDeviceHand.GetHandMotion(isLeft, out InputDeviceHand.HandMotion xrMotion)) + { + motion = xrMotion.WaveType(); + return true; + } + return false; } if (tracker == TrackerType.Natural) @@ -1933,17 +1879,12 @@ public bool GetHandHoldRole(TrackerType tracker, out HandHoldRole role, bool isL if (UseXRData(tracker)) { - role = HandHoldRole.None; - uint roleId = (uint)role; - - if (isLeft) - SettingsHelper.GetInt(kHandRoleLeft, ref roleId); - else - SettingsHelper.GetInt(kHandRoleRight, ref roleId); - - if (roleId == 1) { role = HandHoldRole.Main; } - if (roleId == 2) { role = HandHoldRole.Side; } - return true; + if (InputDeviceHand.GetHandHoldRole(isLeft, out InputDeviceHand.HandHoldRole xrRole)) + { + role = xrRole.WaveType(); + return true; + } + return false; } if (tracker == TrackerType.Natural) @@ -2026,19 +1967,12 @@ public bool GetHandHoldType(TrackerType tracker, out HandHoldType type, bool isL if (UseXRData(tracker)) { - uint typeId = (uint)type; - - if (isLeft) - SettingsHelper.GetInt(kHandObjectLeft, ref typeId); - else - SettingsHelper.GetInt(kHandObjectRight, ref typeId); - - if (typeId == 1) { type = HandHoldType.Gun; } - if (typeId == 2) { type = HandHoldType.OCSpray; } - if (typeId == 3) { type = HandHoldType.LongGun; } - if (typeId == 4) { type = HandHoldType.Baton; } - if (typeId == 5) { type = HandHoldType.FlashLight; } - return true; + if (InputDeviceHand.GetHandHoldType(isLeft, out InputDeviceHand.HandHoldType xrType)) + { + type = xrType.WaveType(); + return true; + } + return false; } if (tracker == TrackerType.Natural) @@ -2119,23 +2053,7 @@ public bool GetPinchOrigin(TrackerType tracker, ref Vector3 origin, bool isLeft) if (UseXRData(tracker)) { - float origin_x = 0, origin_y = 0, origin_z = 0; - if (isLeft) - { - SettingsHelper.GetFloat(kHandOriginLeftX, ref origin_x); - SettingsHelper.GetFloat(kHandOriginLeftY, ref origin_y); - SettingsHelper.GetFloat(kHandOriginLeftZ, ref origin_z); - } - else - { - SettingsHelper.GetFloat(kHandOriginRightX, ref origin_x); - SettingsHelper.GetFloat(kHandOriginRightY, ref origin_y); - SettingsHelper.GetFloat(kHandOriginRightZ, ref origin_z); - } - origin.x = origin_x; - origin.y = origin_y; - origin.z = origin_z; - return true; + return InputDeviceHand.GetPinchOrigin(isLeft, out origin); } if (tracker == TrackerType.Natural) @@ -2202,23 +2120,7 @@ public bool GetPinchDirection(TrackerType tracker, ref Vector3 direction, bool i if (UseXRData(tracker)) { - float direction_x = 0, direction_y = 0, direction_z = 0; - if (isLeft) - { - SettingsHelper.GetFloat(kHandDirectionLeftX, ref direction_x); - SettingsHelper.GetFloat(kHandDirectionLeftY, ref direction_y); - SettingsHelper.GetFloat(kHandDirectionLeftZ, ref direction_z); - } - else - { - SettingsHelper.GetFloat(kHandDirectionRightX, ref direction_x); - SettingsHelper.GetFloat(kHandDirectionRightY, ref direction_y); - SettingsHelper.GetFloat(kHandDirectionRightZ, ref direction_z); - } - direction.x = direction_x; - direction.y = direction_y; - direction.z = direction_z; - return true; + return InputDeviceHand.GetPinchDirection(isLeft, out direction); } if (tracker == TrackerType.Natural) @@ -2285,12 +2187,9 @@ public float GetPinchStrength(TrackerType tracker, bool isLeft) if (UseXRData(tracker)) { - float strength = 0; - if (isLeft) - SettingsHelper.GetFloat(kHandStrengthLeft, ref strength); - else - SettingsHelper.GetFloat(kHandStrengthRight, ref strength); - return strength; + if (InputDeviceHand.GetPinchStrength(isLeft, out float strength)) + return strength; + return 0; } if (tracker == TrackerType.Natural) @@ -2344,31 +2243,129 @@ public float GetPinchStrength(bool isLeft, out long timestamp) #endregion /// Retrieves the default threshold of Hand Pinch motion. - public float GetPinchThreshold(TrackerType tracker) + public bool GetPinchThreshold(TrackerType tracker, out float threshold) { + threshold = 1; // The pinch strength will never > 1 + if (UseXRData(tracker)) { - float threshold = 0; - SettingsHelper.GetFloat(kHandPinchThreshold, ref threshold); - return threshold; + return InputDeviceHand.GetPinchThreshold(out threshold); } if ((tracker == TrackerType.Natural) && hasNaturalTrackerInfo) { - return m_NaturalTrackerInfo.pinchThreshold; + threshold = m_NaturalTrackerInfo.pinchThreshold; + return true; } if ((tracker == TrackerType.Electronic) && hasElectronicTrackerInfo) { - return m_ElectronicTrackerInfo.pinchThreshold; + threshold = m_ElectronicTrackerInfo.pinchThreshold; + return true; } - return 0; + + return false; + } + public float GetPinchThreshold(TrackerType tracker) + { + if (GetPinchThreshold(tracker, out float threshold)) + return threshold; + return 1; // The pinch strength will never > 1 } public float GetPinchThreshold() { TrackerType tracker = TrackerType.Natural; if (GetPreferTracker(ref tracker)) return GetPinchThreshold(tracker); - return 0; + return 1; // The pinch strength will never > 1 + } + /// Retrieves the default threshold of Hand Pinch motion. + public bool GetPinchOffThreshold(TrackerType tracker, out float threshold) + { + threshold = 1; // The pinch strength will never > 1 + + if (UseXRData(tracker)) + { + return InputDeviceHand.GetPinchOffThreshold(out threshold); + } + + if ((tracker == TrackerType.Natural) && hasNaturalTrackerInfo) + { + threshold = m_NaturalTrackerInfo.pinchOff; + return true; + } + if ((tracker == TrackerType.Electronic) && hasElectronicTrackerInfo) + { + threshold = m_ElectronicTrackerInfo.pinchOff; + return true; + } + + return false; + } + public float GetPinchOffThreshold(TrackerType tracker) + { + if (GetPinchOffThreshold(tracker, out float threshold)) + return threshold; + return 1; // The pinch strength will never > 1 + } + public float GetPinchOffThreshold() + { + TrackerType tracker = TrackerType.Natural; + if (GetPreferTracker(ref tracker)) + return GetPinchOffThreshold(tracker); + return 1; // The pinch strength will never > 1 + } + public bool IsHandPinching(TrackerType tracker, bool isLeft) + { + if (GetHandMotion(tracker, isLeft) != HandMotion.Pinch) + return false; + + if (UseXRData(tracker)) + { + return InputDeviceHand.IsHandPinching(isLeft); + } + + if (tracker == TrackerType.Natural) + { + if (hasNaturalHandTrackerData && hasNaturalTrackerInfo) + { + if (isLeft) + return m_NaturalHandPoseData.left.pinch.isPinching; + else + return m_NaturalHandPoseData.right.pinch.isPinching; + } + } + if (tracker == TrackerType.Electronic) + { + if (hasElectronicHandTrackerData && hasElectronicTrackerInfo) + { + if (isLeft) + return m_ElectronicHandPoseData.left.pinch.isPinching; + else + return m_ElectronicHandPoseData.right.pinch.isPinching; + } + } + + return false; + } + public bool IsHandPinching(bool isLeft) + { + TrackerType tracker = TrackerType.Natural; + if (GetPreferTracker(ref tracker)) + return IsHandPinching(tracker, isLeft); + return false; + } + public bool IsHandPinching(HandType hand) + { + return IsHandPinching(hand == HandType.Left); + } + public bool IsHandPinching(bool isLeft, out long timestamp) + { + GetHandPoseTimestamp(out timestamp); + return IsHandPinching(isLeft); + } + public bool IsHandPinching(HandType hand, out long timestamp) + { + return IsHandPinching(hand == HandType.Left, out timestamp); } private bool m_WristPositionFused = false; @@ -3221,5 +3218,30 @@ public static string Name(this HandManager.HandType type) if (type == HandManager.HandType.Right) { return "Right"; } return ""; } + + public static HandManager.HandMotion WaveType(this InputDeviceHand.HandMotion type) + { + if (type == InputDeviceHand.HandMotion.Hold) { return HandManager.HandMotion.Hold; } + if (type == InputDeviceHand.HandMotion.Pinch) { return HandManager.HandMotion.Pinch; } + + return HandManager.HandMotion.None; + } + public static HandManager.HandHoldRole WaveType(this InputDeviceHand.HandHoldRole type) + { + if (type == InputDeviceHand.HandHoldRole.Main) { return HandManager.HandHoldRole.Main; } + if (type == InputDeviceHand.HandHoldRole.Side) { return HandManager.HandHoldRole.Side; } + + return HandManager.HandHoldRole.None; + } + public static HandManager.HandHoldType WaveType(this InputDeviceHand.HandHoldType type) + { + if (type == InputDeviceHand.HandHoldType.Baton) { return HandManager.HandHoldType.Baton; } + if (type == InputDeviceHand.HandHoldType.FlashLight) { return HandManager.HandHoldType.FlashLight; } + if (type == InputDeviceHand.HandHoldType.Gun) { return HandManager.HandHoldType.Gun; } + if (type == InputDeviceHand.HandHoldType.LongGun) { return HandManager.HandHoldType.LongGun; } + if (type == InputDeviceHand.HandHoldType.OCSpray) { return HandManager.HandHoldType.OCSpray; } + + return HandManager.HandHoldType.None; + } } } diff --git a/com.htc.upm.wave.essence/Runtime/Scripts/Raycast/GazeRaycastRing.cs b/com.htc.upm.wave.essence/Runtime/Scripts/Raycast/GazeRaycastRing.cs index 95299aea..3be69dff 100644 --- a/com.htc.upm.wave.essence/Runtime/Scripts/Raycast/GazeRaycastRing.cs +++ b/com.htc.upm.wave.essence/Runtime/Scripts/Raycast/GazeRaycastRing.cs @@ -96,6 +96,10 @@ public class PinchOption [SerializeField] private bool m_RightHand = false; public bool RightHand { get { return m_RightHand; } set { m_RightHand = value; } } + + [SerializeField] + private bool m_DefaultPinch = false; + public bool DefaultPinch { get { return m_DefaultPinch; } set { m_DefaultPinch = value; } } } #region Inspector @@ -179,7 +183,7 @@ protected override void Update() if (!IsInteractable()) { return; } m_KeyDown = ButtonPressed(); - m_HandPinch = HandPinched(); + m_HandPinch = m_ControlHand.DefaultPinch ? CheckHandPinchedByDefault() : CheckHandPinchedByThreshold(); if (printIntervalLog) { @@ -188,7 +192,8 @@ protected override void Update() .Append(", m_ControlKey.Primary2DAxisClick: ").Append(m_ControlKey.Primary2DAxisClick) .Append(", m_ControlKey.TriggerButton: ").Append(m_ControlKey.TriggerButton) .Append(", m_ControlHand.LeftHand: ").Append(m_ControlHand.LeftHand) - .Append(", m_ControlHand.RightHand: ").Append(m_ControlHand.RightHand); + .Append(", m_ControlHand.RightHand: ").Append(m_ControlHand.RightHand) + .Append(", m_ControlHand.DefaultPinch: ").Append(m_ControlHand.DefaultPinch); DEBUG(sb); } } @@ -243,11 +248,15 @@ private bool ButtonPressed() const float kPinchDefOn = .5f, kPinchDiff = .3f; public bool pinchedL = false, pinchedR = false; - private bool HandPinched() + private bool CheckHandPinchedByThreshold() { + float pinchThreshold = kPinchDefOn; + float pinchDiff = kPinchDiff; + if (HandManager.Instance.GetPinchThreshold(HandManager.TrackerType.Natural, out float thresholdOn)) { pinchThreshold = thresholdOn; } + if (HandManager.Instance.GetPinchOffThreshold(HandManager.TrackerType.Natural, out float thresholdOff)) { pinchDiff = pinchThreshold - thresholdOff; } + bool pinched = false; - var pinchThreshold = HandManager.Instance.GetPinchThreshold(); var pinchStrengthL = HandManager.Instance.GetPinchStrength(true); pinchedL = (pinchStrengthL > pinchThreshold); var pinchStrengthR = HandManager.Instance.GetPinchStrength(false); @@ -265,13 +274,39 @@ private bool HandPinched() if (m_ControlHand.LeftHand) { hold |= pinchThreshold > kPinchDefOn ? - pinchStrengthL > (pinchThreshold - kPinchDiff) : pinchStrengthL > kPinchDefOn; + pinchStrengthL > (pinchThreshold - pinchDiff) : pinchStrengthL > kPinchDefOn; } if (m_ControlHand.RightHand) { hold |= pinchThreshold > kPinchDefOn ? - pinchStrengthR > (pinchThreshold - kPinchDiff) : pinchStrengthR > kPinchDefOn; + pinchStrengthR > (pinchThreshold - pinchDiff) : pinchStrengthR > kPinchDefOn; + } + if (!hold) + { + m_ControlHand.IsPinching = false; } + } + + return pinched; + } + private bool CheckHandPinchedByDefault() + { + bool pinched = false; + + pinchedL = HandManager.Instance.IsHandPinching(true); + pinchedR = HandManager.Instance.IsHandPinching(false); + + if (!m_ControlHand.IsPinching) + { + if (m_ControlHand.LeftHand) { pinched |= pinchedL; } + if (m_ControlHand.RightHand) { pinched |= pinchedR; } + m_ControlHand.IsPinching = pinched; + } + else + { + bool hold = false; + if (m_ControlHand.LeftHand) { hold |= pinchedL; } + if (m_ControlHand.RightHand) { hold |= pinchedR; } if (!hold) { m_ControlHand.IsPinching = false; diff --git a/com.htc.upm.wave.essence/Runtime/Scripts/Raycast/HandRaycastPointer.cs b/com.htc.upm.wave.essence/Runtime/Scripts/Raycast/HandRaycastPointer.cs index e6300473..ed1d0d46 100644 --- a/com.htc.upm.wave.essence/Runtime/Scripts/Raycast/HandRaycastPointer.cs +++ b/com.htc.upm.wave.essence/Runtime/Scripts/Raycast/HandRaycastPointer.cs @@ -39,26 +39,58 @@ private void DEBUG(StringBuilder msg) private bool m_UseDefaultPinch = false; public bool UseDefaultPinch { get { return m_UseDefaultPinch; } set { m_UseDefaultPinch = value; } } + private float m_PinchStrengthCustom = .5f; [Tooltip("Pinch strength to trigger events.")] [SerializeField] [Range(0, 1)] private float m_PinchStrength = .5f; - public float PinchStrength { get { return m_PinchStrength; } set { m_PinchStrength = value; } } + public float PinchStrength { + get { return m_PinchStrength; } + set { + m_PinchStrength = value; + m_PinchStrengthCustom = value; + } + } + private float m_PinchReleaseCustom = .5f; [Tooltip("Pinch will release when strength < (Pinch Strength - Pinch Release)")] [SerializeField] [Range(0, .9f)] private float m_PinchRelease = .5f; - public float PinchRelease { get { return m_PinchRelease; } set { m_PinchRelease = value; } } + public float PinchRelease { + get { return m_PinchRelease; } + set { + m_PinchRelease = value; + m_PinchReleaseCustom = value; + } + } + + protected override void Awake() + { + base.Awake(); + + m_PinchStrengthCustom = m_PinchStrength; + m_PinchReleaseCustom = m_PinchRelease; + } const float kPinchThreshold = .5f; private void Validate() { - // Checks PinchStrength. - if (m_UseDefaultPinch && HandManager.Instance != null) { m_PinchStrength = HandManager.Instance.GetPinchThreshold(); } - // Checks PinchRelease - if (m_PinchStrength <= kPinchThreshold) { m_PinchRelease = 0; } + // Retrieves pinch on/off threshold. + if (m_UseDefaultPinch && HandManager.Instance != null) + { + m_PinchStrength = Mathf.Clamp01(HandManager.Instance.GetPinchThreshold()); + float pinchOffThreshold = Mathf.Clamp01(HandManager.Instance.GetPinchOffThreshold()); + if (m_PinchStrength > pinchOffThreshold) { m_PinchRelease = m_PinchStrength - pinchOffThreshold; } + } else + { + m_PinchStrength = m_PinchStrengthCustom; + m_PinchRelease = m_PinchReleaseCustom; + } + // Checks pinch off threshold. + if (m_PinchStrength <= kPinchThreshold) { m_PinchRelease = 0; } + else // Pinch On Threshold > 0.5f { // m_PinchStrength > kPinchThreshold but // m_PinchStrength < m_PinchRelease thus m_PinchStrength - m_PinchRelease < 0 @@ -132,7 +164,7 @@ protected override bool OnDown() if (!eligibleForClick) { - bool down = HandManager.Instance.GetPinchStrength(m_Hand) > m_PinchStrength; + bool down = m_UseDefaultPinch ? HandManager.Instance.IsHandPinching(m_Hand) : HandManager.Instance.GetPinchStrength(m_Hand) > m_PinchStrength; if (down) { eligibleForClick = true; @@ -144,9 +176,17 @@ protected override bool OnDown() } protected override bool OnHold() { - float pinchStrength = HandManager.Instance.GetPinchStrength(m_Hand); - bool hold = pinchStrength > m_PinchStrength; - if (eligibleForClick) { hold = pinchStrength > (m_PinchStrength - m_PinchRelease); } + bool hold = false; + if (m_UseDefaultPinch) + { + if (eligibleForClick) { hold = HandManager.Instance.IsHandPinching(m_Hand); } + } + else + { + float pinchStrength = HandManager.Instance.GetPinchStrength(m_Hand); + hold = pinchStrength > m_PinchStrength; + if (eligibleForClick) { hold = pinchStrength > (m_PinchStrength - m_PinchRelease); } + } if (!hold) eligibleForClick = false; return hold; diff --git a/com.htc.upm.wave.essence/Runtime/Scripts/SystemEvent.cs b/com.htc.upm.wave.essence/Runtime/Scripts/SystemEvent.cs index bb20e279..e15a1b0c 100644 --- a/com.htc.upm.wave.essence/Runtime/Scripts/SystemEvent.cs +++ b/com.htc.upm.wave.essence/Runtime/Scripts/SystemEvent.cs @@ -206,8 +206,6 @@ public static void CheckInstance() private void OnEnable() { - instance = this; - if (PollSystemFrameEvent == null) PollSystemFrameEvent = FunctionsHelper.GetFuncPtr("PollFrameEvent"); } @@ -219,6 +217,9 @@ private void OnDestroy() private void Update() { + // Only one can poll and send the event. + if (instance != this) return; + if (PollSystemFrameEvent == null) { Log.e("WVRSystemEvent", "PollSystemFrameEvent == null"); diff --git a/com.htc.upm.wave.essence/Runtime/Scripts/Tracker/TrackerManager.cs b/com.htc.upm.wave.essence/Runtime/Scripts/Tracker/TrackerManager.cs index 8004ff18..c777e258 100644 --- a/com.htc.upm.wave.essence/Runtime/Scripts/Tracker/TrackerManager.cs +++ b/com.htc.upm.wave.essence/Runtime/Scripts/Tracker/TrackerManager.cs @@ -606,6 +606,7 @@ private void CheckTrackerCapbility(TrackerId trackerId) class TrackerPose { public bool valid = false; + public bool is6DoF = false; public RigidTransform rigid = RigidTransform.identity; public Vector3 velocity = Vector3.zero; public Vector3 angularVelocity = Vector3.zero; @@ -614,6 +615,7 @@ class TrackerPose public TrackerPose() { valid = false; + is6DoF = false; rigid = RigidTransform.identity; velocity = Vector3.zero; angularVelocity = Vector3.zero; @@ -637,9 +639,10 @@ private void CheckTrackerPoseState(TrackerId trackerId) WVR_PoseState_t pose = new WVR_PoseState_t(); WVR_Result result = Interop.WVR_GetTrackerPoseState(trackerId.Id(), origin, 0, ref pose); - if (result == WVR_Result.WVR_Success) + if (result == WVR_Result.WVR_Success && s_TrackerPoses.ContainsKey(trackerId)) { s_TrackerPoses[trackerId].valid = pose.IsValidPose; + s_TrackerPoses[trackerId].is6DoF = pose.Is6DoFPose; s_TrackerPoses[trackerId].rigid.update(pose.PoseMatrix); Coordinate.GetVectorFromGL(pose.Velocity, out s_TrackerPoses[trackerId].velocity); s_TrackerPoses[trackerId].angularVelocity.x = -pose.AngularVelocity.v0; @@ -726,7 +729,9 @@ private void CheckTrackerButtonAnalog(TrackerId trackerId) .Append(", system: ").Append(s_ButtonAxisType[trackerId][WVR_InputId.WVR_InputId_Alias1_System.ArrayIndex()]) .Append(", menu: ").Append(s_ButtonAxisType[trackerId][WVR_InputId.WVR_InputId_Alias1_Menu.ArrayIndex()]) .Append(", A: ").Append(s_ButtonAxisType[trackerId][WVR_InputId.WVR_InputId_Alias1_A.ArrayIndex()]) - .Append(", B: ").Append(s_ButtonAxisType[trackerId][WVR_InputId.WVR_InputId_Alias1_B.ArrayIndex()]); + .Append(", B: ").Append(s_ButtonAxisType[trackerId][WVR_InputId.WVR_InputId_Alias1_B.ArrayIndex()]) + .Append(", Touchpad: ").Append(s_ButtonAxisType[trackerId][WVR_InputId.WVR_InputId_Alias1_Touchpad.ArrayIndex()]) + .Append(", Trigger: ").Append(s_ButtonAxisType[trackerId][WVR_InputId.WVR_InputId_Alias1_Trigger.ArrayIndex()]); DEBUG(sb); } #endregion @@ -1079,6 +1084,25 @@ public bool IsTrackerPoseValid(TrackerId trackerId) return s_TrackerPoses[trackerId].valid; } + public bool GetTrackerTrackingState(TrackerId trackerId, out InputTrackingState state) + { + state = InputTrackingState.None; + + if (UseXRData()) + { + return InputDeviceTracker.GetTrackingState(trackerId.InputDevice(), out state); + } + + if (s_TrackerPoses[trackerId].valid) + { + if (s_TrackerPoses[trackerId].is6DoF) + state = InputTrackingState.All; + else + state = InputTrackingState.Rotation | InputTrackingState.AngularVelocity | InputTrackingState.AngularAcceleration; + } + + return s_TrackerPoses[trackerId].valid; + } public TrackerRole GetTrackerRole(TrackerId trackerId) { @@ -1211,6 +1235,14 @@ public bool TrackerButtonPress(TrackerId trackerId, TrackerButton id) } public bool TrackerButtonHold(TrackerId trackerId, TrackerButton id) { + if (UseXRData()) + { + if (InputDeviceTracker.ButtonDown(trackerId.InputDevice(), id.Usage(WVR_InputType.WVR_InputType_Button), out bool value)) + return value; + + return false; + } + UpdateTrackerPress(trackerId, id.Id()); return (ss_TrackerPressEx[trackerId][id.Num()] && ss_TrackerPress[trackerId][id.Num()]); } @@ -1226,6 +1258,14 @@ public bool TrackerButtonTouch(TrackerId trackerId, TrackerButton id) } public bool TrackerButtonTouching(TrackerId trackerId, TrackerButton id) { + if (UseXRData()) + { + if (InputDeviceTracker.ButtonDown(trackerId.InputDevice(), id.Usage(WVR_InputType.WVR_InputType_Touch), out bool value)) + return value; + + return false; + } + UpdateTrackerTouch(trackerId, id.Id()); return (ss_TrackerTouchEx[trackerId][id.Num()] && ss_TrackerTouch[trackerId][id.Num()]); } @@ -1238,17 +1278,23 @@ public Vector2 TrackerButtonAxis(TrackerId trackerId, TrackerButton id) { if (UseXRData()) { + Vector2 axis = Vector2.zero; + + if (id == TrackerButton.Touchpad) + { + if (InputDeviceTracker.ButtonAxis(trackerId.InputDevice(), XR_Feature.primary2DAxis, out axis)) + return axis; + } if (id == TrackerButton.Trigger) { - Vector2 axis = Vector2.zero; - if (InputDeviceTracker.ButtonAxis(trackerId.InputDevice(), CommonUsages.trigger, out float value)) + if (InputDeviceTracker.ButtonAxis(trackerId.InputDevice(), XR_Feature.trigger, out float value)) { axis.x = value; return axis; } } - return Vector2.zero; + return axis; } UpdateTrackerAxis(trackerId, id.Id()); diff --git a/com.htc.upm.wave.essence/Runtime/Scripts/Tracker/TrackerUtils.cs b/com.htc.upm.wave.essence/Runtime/Scripts/Tracker/TrackerUtils.cs index 369939d8..9cd1eefd 100644 --- a/com.htc.upm.wave.essence/Runtime/Scripts/Tracker/TrackerUtils.cs +++ b/com.htc.upm.wave.essence/Runtime/Scripts/Tracker/TrackerUtils.cs @@ -8,6 +8,8 @@ // conditions signed by you and all SDK and API requirements, // specifications, and documentation provided by HTC to You." +using UnityEngine; +using UnityEngine.XR; using Wave.Native; using Wave.OpenXR; @@ -79,6 +81,7 @@ public enum TrackerButton B = WVR_InputId.WVR_InputId_Alias1_B, X = WVR_InputId.WVR_InputId_Alias1_X, Y = WVR_InputId.WVR_InputId_Alias1_Y, + Touchpad = WVR_InputId.WVR_InputId_Alias1_Touchpad, Trigger = WVR_InputId.WVR_InputId_Alias1_Trigger, } @@ -321,6 +324,7 @@ public static int Num(this TrackerButton button) if (button == TrackerButton.B) { return 11; } if (button == TrackerButton.X) { return 12; } if (button == TrackerButton.Y) { return 13; } + if (button == TrackerButton.Touchpad) { return 16; } if (button == TrackerButton.Trigger) { return 17; } return 31; @@ -333,10 +337,31 @@ public static WVR_InputId Id(this TrackerButton button) if (button == TrackerButton.B) { return WVR_InputId.WVR_InputId_Alias1_B; } if (button == TrackerButton.X) { return WVR_InputId.WVR_InputId_Alias1_X; } if (button == TrackerButton.Y) { return WVR_InputId.WVR_InputId_Alias1_Y; } + if (button == TrackerButton.Touchpad) { return WVR_InputId.WVR_InputId_Alias1_Touchpad; } if (button == TrackerButton.Trigger) { return WVR_InputId.WVR_InputId_Alias1_Trigger; } return WVR_InputId.WVR_InputId_Alias1_System; } + public static InputFeatureUsage Usage(this TrackerButton button, WVR_InputType inputType) + { + if (inputType == WVR_InputType.WVR_InputType_Button) + { + if (button == TrackerButton.Menu || button == TrackerButton.System) { return XR_Feature.menuButton; } + if (button == TrackerButton.A || button == TrackerButton.X) { return XR_Feature.primaryButton; } + if (button == TrackerButton.B || button == TrackerButton.Y) { return XR_Feature.secondaryButton; } + if (button == TrackerButton.Touchpad) { return XR_Feature.primary2DAxisClick; } + if (button == TrackerButton.Trigger) { return XR_Feature.triggerButton; } + } + if (inputType == WVR_InputType.WVR_InputType_Touch) + { + if (button == TrackerButton.A || button == TrackerButton.X) { return XR_Feature.primaryTouch; } + if (button == TrackerButton.B || button == TrackerButton.Y) { return XR_Feature.secondaryTouch; } + if (button == TrackerButton.Touchpad) { return XR_Feature.primary2DAxisTouch; } + if (button == TrackerButton.Trigger) { return XR_Feature.triggerTouch; } + } + + return new InputFeatureUsage(""); + } #region Native public static bool ValidWVRInputId(this uint id) diff --git a/com.htc.upm.wave.essence/Runtime/Scripts/WaveEssence.cs b/com.htc.upm.wave.essence/Runtime/Scripts/WaveEssence.cs index 0ff933c8..0c14a9b0 100644 --- a/com.htc.upm.wave.essence/Runtime/Scripts/WaveEssence.cs +++ b/com.htc.upm.wave.essence/Runtime/Scripts/WaveEssence.cs @@ -46,7 +46,9 @@ public static WaveEssence Instance { if (instance == null) { - var gameObject = new GameObject("WaveEssence", typeof(WaveVR_SystemEvent)); + var gameObject = new GameObject("WaveEssence"); + // For Compositor, seems like it needs the SystemEvent object to be created before the compositor is created. This is not OK because the SystemEvent is only created if necessary. But I keep it here to avoid compositor's protential problem. + WaveVR_SystemEvent.CheckInstance(); instance = gameObject.AddComponent(); // This object should survive all scene transitions. DontDestroyOnLoad(instance); diff --git a/com.htc.upm.wave.essence/Runtime/Scripts/WaveRig.cs b/com.htc.upm.wave.essence/Runtime/Scripts/WaveRig.cs index d69fb5c2..cda164dd 100644 --- a/com.htc.upm.wave.essence/Runtime/Scripts/WaveRig.cs +++ b/com.htc.upm.wave.essence/Runtime/Scripts/WaveRig.cs @@ -8,6 +8,7 @@ // conditions signed by you and all SDK and API requirements, // specifications, and documentation provided by HTC to You." +using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.XR; @@ -18,87 +19,140 @@ namespace Wave.Essence [DisallowMultipleComponent] public sealed class WaveRig : MonoBehaviour { - const string LOG_TAG = "Wave.Essence.WaveRig"; + // Singleton + private static WaveRig _instance; + public static WaveRig Instance => _instance; + + const string TAG = "Wave.Essence.WaveRig"; void DEBUG(string msg) { if (Log.EnableDebugLog) - Log.d(LOG_TAG, msg, true); + Log.d(TAG, msg, true); } [SerializeField] private GameObject m_CameraOffset = null; public GameObject CameraOffset { get { return m_CameraOffset; } set { m_CameraOffset = value; } } -#pragma warning disable - private Camera m_Camera = null; -#pragma warning enable [SerializeField] private GameObject m_CameraObject = null; public GameObject CameraObject { get { return m_CameraObject; } set { m_CameraObject = value; } } -#pragma warning disable - private TrackingOriginModeFlags m_TrackingOriginEx = TrackingOriginModeFlags.Device; -#pragma warning enable [SerializeField] private TrackingOriginModeFlags m_TrackingOrigin = TrackingOriginModeFlags.Device; - public TrackingOriginModeFlags TrackingOrigin { get { return m_TrackingOrigin; } set { m_TrackingOrigin = value; } } + public TrackingOriginModeFlags TrackingOrigin { get { return m_TrackingOrigin; } set { m_TrackingOrigin = value; UpdateTackingOrigin(); } } private Vector3 cameraPosOffset = Vector3.zero; [SerializeField] private float m_CameraYOffset = 1; public float CameraYOffset { get { return m_CameraYOffset; } set { m_CameraYOffset = value; } } -#if !UNITY_EDITOR && UNITY_ANDROID XRInputSubsystem m_InputSystem = null; + private void Awake() { - if (m_CameraObject != null) { m_Camera = m_CameraObject.GetComponent(); } + if (_instance != null && _instance != this) + { + Log.w(TAG, + "The WaveRig should be a singleton object, and there is already one in the scene."); + RemoveSelf(); + } + else + { + _instance = this; + } + Log.d(TAG, "WaveRig Awake()"); + } + + public void RemoveSelf() + { + var component = gameObject.GetComponent(); + + if (component != null) + { + Destroy(component); + } + } + + private IEnumerator Start() + { + Log.d(TAG, "WaveRig Start()"); + + float timeAcc = 0; List subsystems = new List(); - SubsystemManager.GetInstances(subsystems); - foreach (var subsystem in subsystems) + + // Try to get input subsystem in 3 seconds. + while (timeAcc < 3 && m_InputSystem == null) { - if (subsystem.SubsystemDescriptor.id.Equals("WVR Input Provider")) + yield return null; + Log.d(TAG, "Check subsystem ", true); + timeAcc += Time.unscaledDeltaTime; + SubsystemManager.GetInstances(subsystems); + if (subsystems.Count <= 0) + { + Log.i(TAG, "No subsystem", true); + continue; + } + + foreach (XRInputSubsystem subsystem in subsystems) { - m_InputSystem = subsystem; - break; + if (subsystem.running) + { + m_InputSystem = subsystem; + break; + } } } - if (m_InputSystem != null) - { - m_InputSystem.TrySetTrackingOriginMode(m_TrackingOrigin); - TrackingOriginModeFlags mode = m_InputSystem.GetTrackingOriginMode(); - Log.i(LOG_TAG, "Awake() Tracking mode is set to " + mode, true); + if (m_InputSystem == null) + { + Log.w(TAG, "InputSystem is not exist", true); + yield break; } - m_TrackingOriginEx = m_TrackingOrigin; - } -#endif - private void Update() - { -#if !UNITY_EDITOR && UNITY_ANDROID - if (m_InputSystem != null) + { TrackingOriginModeFlags mode = m_InputSystem.GetTrackingOriginMode(); - if (mode != m_TrackingOrigin || m_TrackingOriginEx != m_TrackingOrigin) + if (mode != m_TrackingOrigin) { m_InputSystem.TrySetTrackingOriginMode(m_TrackingOrigin); mode = m_InputSystem.GetTrackingOriginMode(); - Log.i(LOG_TAG, "Update() Tracking mode is set to " + mode, true); - m_TrackingOriginEx = m_TrackingOrigin; + Log.i(TAG, "Tracking mode is set to " + mode, true); + } + else + { + Log.i(TAG, "Tracking mode is already set to " + mode, true); } } -#endif if (m_CameraOffset != null) { cameraPosOffset.x = m_CameraOffset.transform.localPosition.x; - cameraPosOffset.y = m_CameraYOffset; cameraPosOffset.z = m_CameraOffset.transform.localPosition.z; + if (m_TrackingOrigin != TrackingOriginModeFlags.Floor) + cameraPosOffset.y = m_CameraYOffset; + else + cameraPosOffset.y = 0; + m_CameraOffset.transform.localPosition = cameraPosOffset; } } + + void UpdateTackingOrigin() + { + if (m_InputSystem == null) + return; + + TrackingOriginModeFlags mode = m_InputSystem.GetTrackingOriginMode(); + if (mode != m_TrackingOrigin) + { + m_InputSystem.TrySetTrackingOriginMode(m_TrackingOrigin); + + mode = m_InputSystem.GetTrackingOriginMode(); + Log.i(TAG, "Update() Tracking mode is set to " + mode, true); + } + } } -} \ No newline at end of file +} diff --git a/com.htc.upm.wave.essence/Samples~/Essence/Essence/ButtonTest/Scripts/InputSystem/AxisUsage.cs b/com.htc.upm.wave.essence/Samples~/Essence/Essence/ButtonTest/Scripts/InputSystem/AxisUsage.cs index df1b551c..51a0ed43 100644 --- a/com.htc.upm.wave.essence/Samples~/Essence/Essence/ButtonTest/Scripts/InputSystem/AxisUsage.cs +++ b/com.htc.upm.wave.essence/Samples~/Essence/Essence/ButtonTest/Scripts/InputSystem/AxisUsage.cs @@ -27,7 +27,9 @@ void DEBUG(string msg) Log.d(LOG_TAG, gameObject.name + " " + msg, true); } bool printIntervalLog = false; +#pragma warning disable int logFrame = 0; +#pragma warning enable void INTERVAL(string msg) { if (printIntervalLog && !Application.isEditor) { DEBUG(msg); } } public string usageName; diff --git a/com.htc.upm.wave.essence/Samples~/Essence/Essence/ButtonTest/Scripts/InputSystem/PressUsage.cs b/com.htc.upm.wave.essence/Samples~/Essence/Essence/ButtonTest/Scripts/InputSystem/PressUsage.cs index 704ac88f..110b2dfe 100644 --- a/com.htc.upm.wave.essence/Samples~/Essence/Essence/ButtonTest/Scripts/InputSystem/PressUsage.cs +++ b/com.htc.upm.wave.essence/Samples~/Essence/Essence/ButtonTest/Scripts/InputSystem/PressUsage.cs @@ -27,7 +27,9 @@ void DEBUG(string msg) Log.d(LOG_TAG, gameObject.name + " " + msg, true); } bool printIntervalLog = false; +#pragma warning disable int logFrame = 0; +#pragma warning enable void INTERVAL(string msg) { if (printIntervalLog && !Application.isEditor) { DEBUG(msg); } } public string usageName; diff --git a/com.htc.upm.wave.essence/Samples~/Essence/Essence/ButtonTest/Scripts/InputSystem/StickUsage.cs b/com.htc.upm.wave.essence/Samples~/Essence/Essence/ButtonTest/Scripts/InputSystem/StickUsage.cs index 10267ce8..5baa7de5 100644 --- a/com.htc.upm.wave.essence/Samples~/Essence/Essence/ButtonTest/Scripts/InputSystem/StickUsage.cs +++ b/com.htc.upm.wave.essence/Samples~/Essence/Essence/ButtonTest/Scripts/InputSystem/StickUsage.cs @@ -27,7 +27,9 @@ void DEBUG(string msg) Log.d(LOG_TAG, gameObject.name + " " + msg, true); } bool printIntervalLog = false; +#pragma warning disable int logFrame = 0; +#pragma warning enable void INTERVAL(string msg) { if (printIntervalLog && !Application.isEditor) { DEBUG(msg); } } public string usageName; diff --git a/com.htc.upm.wave.essence/Samples~/Essence/Essence/ButtonTest/Scripts/InputSystem/TouchUsage.cs b/com.htc.upm.wave.essence/Samples~/Essence/Essence/ButtonTest/Scripts/InputSystem/TouchUsage.cs index ef442f8d..75e4166c 100644 --- a/com.htc.upm.wave.essence/Samples~/Essence/Essence/ButtonTest/Scripts/InputSystem/TouchUsage.cs +++ b/com.htc.upm.wave.essence/Samples~/Essence/Essence/ButtonTest/Scripts/InputSystem/TouchUsage.cs @@ -27,7 +27,9 @@ void DEBUG(string msg) Log.d(LOG_TAG, gameObject.name + " " + msg, true); } bool printIntervalLog = false; +#pragma warning disable int logFrame = 0; +#pragma warning enable void INTERVAL(string msg) { if (printIntervalLog && !Application.isEditor) { DEBUG(msg); } } public string usageName; diff --git a/com.htc.upm.wave.essence/Samples~/Essence/Essence/PassThrough/PassThrough.unity b/com.htc.upm.wave.essence/Samples~/Essence/Essence/PassThrough/PassThrough.unity index 04541239..7582768b 100644 --- a/com.htc.upm.wave.essence/Samples~/Essence/Essence/PassThrough/PassThrough.unity +++ b/com.htc.upm.wave.essence/Samples~/Essence/Essence/PassThrough/PassThrough.unity @@ -43,7 +43,7 @@ RenderSettings: --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 11 m_GIWorkflowMode: 1 m_GISettings: serializedVersion: 2 @@ -98,7 +98,7 @@ LightmapSettings: m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} - m_LightingSettings: {fileID: 0} + m_UseShadowmask: 1 --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -118,8 +118,6 @@ NavMeshSettings: manualTileSize: 0 tileSize: 256 accuratePlacement: 0 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 debug: m_Flags: 0 m_NavMeshData: {fileID: 0} @@ -151,7 +149,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 398174904} - {fileID: 344262545} @@ -180,7 +177,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0, g: 0, b: 0, a: 0.392} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -232,7 +228,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1726790182} m_Father: {fileID: 24471819} @@ -257,7 +252,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 - m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -288,8 +282,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 830486987} - m_TargetAssemblyTypeName: Wave.Essence.Samples.PassThrough.ChangeOriginalUI, - Wave.Essence.Sample m_MethodName: OnGroundClicked m_Mode: 1 m_Arguments: @@ -315,7 +307,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -367,7 +358,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1229125143} m_Father: {fileID: 861654597} @@ -392,7 +382,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 0 - m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -423,7 +412,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1006803630362192608} - m_TargetAssemblyTypeName: m_MethodName: OnButtonClickHigh m_Mode: 1 m_Arguments: @@ -449,7 +437,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -500,7 +487,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 532853559} m_RootOrder: 0 @@ -525,7 +511,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -628,7 +613,6 @@ Light: m_UseColorTemperature: 0 m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &293719104 @@ -641,7 +625,6 @@ Transform: m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -675,7 +658,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1265393519} m_Father: {fileID: 24471819} @@ -700,7 +682,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 - m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -731,8 +712,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 830486987} - m_TargetAssemblyTypeName: Wave.Essence.Samples.PassThrough.ChangeOriginalUI, - Wave.Essence.Sample m_MethodName: OnHead3DofClicked m_Mode: 1 m_Arguments: @@ -758,7 +737,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -788,51 +766,63 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 1913770303} m_Modifications: - - target: {fileID: 1139730378515063765, guid: 9f0db195554da7649b9bc90f6f4a4fee, type: 3} + - target: {fileID: 1139730378515063765, guid: 9f0db195554da7649b9bc90f6f4a4fee, + type: 3} propertyPath: m_Name value: DummyRightPose objectReference: {fileID: 0} - - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, type: 3} + - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, + type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, type: 3} + - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, + type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, type: 3} + - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, + type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, type: 3} + - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, + type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, type: 3} + - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, + type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, type: 3} + - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, + type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, type: 3} + - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, + type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, type: 3} + - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, + type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, type: 3} + - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, + type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, type: 3} + - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, + type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, type: 3} + - target: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, + type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -840,12 +830,14 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 9f0db195554da7649b9bc90f6f4a4fee, type: 3} --- !u!4 &335298178 stripped Transform: - m_CorrespondingSourceObject: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, type: 3} + m_CorrespondingSourceObject: {fileID: 1139730378515063767, guid: 9f0db195554da7649b9bc90f6f4a4fee, + type: 3} m_PrefabInstance: {fileID: 335298177} m_PrefabAsset: {fileID: 0} --- !u!114 &335298179 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 1139730378515063766, guid: 9f0db195554da7649b9bc90f6f4a4fee, type: 3} + m_CorrespondingSourceObject: {fileID: 1139730378515063766, guid: 9f0db195554da7649b9bc90f6f4a4fee, + type: 3} m_PrefabInstance: {fileID: 335298177} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -883,7 +875,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 620438701} m_Father: {fileID: 24471819} @@ -908,7 +899,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 - m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -939,8 +929,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 830486987} - m_TargetAssemblyTypeName: Wave.Essence.Samples.PassThrough.ChangeOriginalUI, - Wave.Essence.Sample m_MethodName: OnHeadClicked m_Mode: 1 m_Arguments: @@ -966,7 +954,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -996,55 +983,68 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 1913770303} m_Modifications: - - target: {fileID: 4891696174188523868, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} + - target: {fileID: 4891696174188523868, guid: e0281111bf248c14e8a92210a42e2a62, + type: 3} propertyPath: m_Enabled value: 0 objectReference: {fileID: 0} - - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} + - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, + type: 3} propertyPath: m_RootOrder value: 2 objectReference: {fileID: 0} - - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} + - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, + type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} + - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, + type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} + - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, + type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} + - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, + type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} + - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, + type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} + - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, + type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} + - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, + type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} + - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, + type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} + - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, + type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} + - target: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, + type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6591962232455381113, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} + - target: {fileID: 6591962232455381113, guid: e0281111bf248c14e8a92210a42e2a62, + type: 3} propertyPath: m_Name value: WaveLeftController objectReference: {fileID: 0} @@ -1052,12 +1052,14 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} --- !u!4 &383858639 stripped Transform: - m_CorrespondingSourceObject: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} + m_CorrespondingSourceObject: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, + type: 3} m_PrefabInstance: {fileID: 383858638} m_PrefabAsset: {fileID: 0} --- !u!1 &383858640 stripped GameObject: - m_CorrespondingSourceObject: {fileID: 6591962232455381113, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} + m_CorrespondingSourceObject: {fileID: 6591962232455381113, guid: e0281111bf248c14e8a92210a42e2a62, + type: 3} m_PrefabInstance: {fileID: 383858638} m_PrefabAsset: {fileID: 0} --- !u!114 &383858641 @@ -1163,12 +1165,10 @@ LineRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 0 m_LightProbeUsage: 0 m_ReflectionProbeUsage: 0 m_RayTracingMode: 0 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1279,7 +1279,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 24471819} m_RootOrder: 0 @@ -1304,7 +1303,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1331,6 +1329,84 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 398174903} m_CullTransparentMesh: 0 +--- !u!1 &427411174 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 427411175} + - component: {fileID: 427411177} + - component: {fileID: 427411176} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &427411175 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 427411174} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 973237758} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &427411176 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 427411174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Boost +--- !u!222 &427411177 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 427411174} + m_CullTransparentMesh: 0 --- !u!1 &432743011 GameObject: m_ObjectHideFlags: 0 @@ -1360,7 +1436,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 966022204} m_Father: {fileID: 1610751719} @@ -1385,7 +1460,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 - m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -1416,7 +1490,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1745075645} - m_TargetAssemblyTypeName: m_MethodName: TriggerMode m_Mode: 1 m_Arguments: @@ -1442,7 +1515,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1493,7 +1565,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 534582086} m_RootOrder: 0 @@ -1518,7 +1589,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1574,7 +1644,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 241754644} m_Father: {fileID: 1610751719} @@ -1599,7 +1668,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 - m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -1630,7 +1698,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1745075645} - m_TargetAssemblyTypeName: m_MethodName: RawMode m_Mode: 1 m_Arguments: @@ -1656,7 +1723,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1706,7 +1772,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 469595030} - {fileID: 2036827485} @@ -1745,7 +1810,6 @@ MonoBehaviour: m_ChildControlHeight: 1 m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 --- !u!1 &558756743 GameObject: m_ObjectHideFlags: 0 @@ -1774,7 +1838,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2090324188} m_RootOrder: 0 @@ -1799,7 +1862,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1833,55 +1895,68 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 1913770303} m_Modifications: - - target: {fileID: 4556005873706983591, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} + - target: {fileID: 4556005873706983591, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, + type: 3} propertyPath: m_Enabled value: 0 objectReference: {fileID: 0} - - target: {fileID: 8753945197990410855, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} + - target: {fileID: 8753945197990410855, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, + type: 3} propertyPath: m_Name value: WaveRightController objectReference: {fileID: 0} - - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} + - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, + type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} + - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, + type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} + - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, + type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} + - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, + type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} + - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, + type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} + - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, + type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} + - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, + type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} + - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, + type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} + - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, + type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} + - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, + type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} + - target: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, + type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -1889,12 +1964,14 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} --- !u!4 &575572318 stripped Transform: - m_CorrespondingSourceObject: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} + m_CorrespondingSourceObject: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, + type: 3} m_PrefabInstance: {fileID: 575572317} m_PrefabAsset: {fileID: 0} --- !u!1 &575572319 stripped GameObject: - m_CorrespondingSourceObject: {fileID: 8753945197990410855, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} + m_CorrespondingSourceObject: {fileID: 8753945197990410855, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, + type: 3} m_PrefabInstance: {fileID: 575572317} m_PrefabAsset: {fileID: 0} --- !u!114 &575572320 @@ -2000,12 +2077,10 @@ LineRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 0 m_LightProbeUsage: 0 m_ReflectionProbeUsage: 0 m_RayTracingMode: 0 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2116,7 +2191,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 861654597} m_RootOrder: 0 @@ -2141,7 +2215,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2197,7 +2270,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1981199701} m_Father: {fileID: 1610751719} @@ -2222,7 +2294,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 - m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -2253,7 +2324,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1745075645} - m_TargetAssemblyTypeName: m_MethodName: PanelMode m_Mode: 1 m_Arguments: @@ -2279,7 +2349,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2330,7 +2399,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 344262545} m_RootOrder: 0 @@ -2355,7 +2423,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2411,7 +2478,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1847026613} m_Father: {fileID: 534582086} @@ -2436,7 +2502,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 0 - m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -2467,7 +2532,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1006803630362192608} - m_TargetAssemblyTypeName: m_MethodName: OnButtonClickEnvironmentView m_Mode: 1 m_Arguments: @@ -2493,7 +2557,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2544,7 +2607,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 861654597} m_RootOrder: 4 @@ -2569,7 +2631,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2623,7 +2684,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1586945487} - {fileID: 1006803630362192412} @@ -2662,7 +2722,6 @@ MonoBehaviour: m_ChildControlHeight: 1 m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 --- !u!1 &830486986 GameObject: m_ObjectHideFlags: 0 @@ -2734,7 +2793,6 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 --- !u!223 &830486990 Canvas: m_ObjectHideFlags: 0 @@ -2766,7 +2824,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 20} m_LocalScale: {x: 0.03, y: 0.03, z: 0.03} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 24471819} m_Father: {fileID: 0} @@ -2804,7 +2861,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 576799388} - {fileID: 89791203} @@ -2844,7 +2900,6 @@ MonoBehaviour: m_ChildControlHeight: 1 m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 --- !u!1 &878073528 GameObject: m_ObjectHideFlags: 0 @@ -2873,7 +2928,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1087320860} m_RootOrder: 0 @@ -2898,7 +2952,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2953,7 +3006,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 432743012} m_RootOrder: 0 @@ -2978,7 +3030,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3005,6 +3056,201 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 966022203} m_CullTransparentMesh: 0 +--- !u!1 &973237757 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 973237758} + - component: {fileID: 973237761} + - component: {fileID: 973237760} + - component: {fileID: 973237759} + m_Layer: 5 + m_Name: Boost + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &973237758 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 973237757} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 427411175} + m_Father: {fileID: 986960225} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &973237759 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 973237757} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.353, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.353, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 973237760} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1006803630362192608} + m_MethodName: OnButtonClickRateBoost + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &973237760 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 973237757} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &973237761 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 973237757} + m_CullTransparentMesh: 0 +--- !u!1 &986960224 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 986960225} + - component: {fileID: 986960226} + m_Layer: 5 + m_Name: VerticalLayout 5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &986960225 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 986960224} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1522366396} + - {fileID: 973237758} + - {fileID: 2028161080} + - {fileID: 2006763883} + m_Father: {fileID: 1871477114} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &986960226 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 986960224} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_ChildAlignment: 0 + m_Spacing: 2 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 --- !u!1 &1003923996 GameObject: m_ObjectHideFlags: 0 @@ -3033,7 +3279,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2083607342} m_RootOrder: 0 @@ -3058,7 +3303,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3132,7 +3376,6 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 1.032, y: 0.38187808, z: 2.5} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 2 @@ -3166,7 +3409,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 878073529} m_Father: {fileID: 861654597} @@ -3191,7 +3433,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 0 - m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -3222,7 +3463,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1006803630362192608} - m_TargetAssemblyTypeName: m_MethodName: OnButtonClickLow m_Mode: 1 m_Arguments: @@ -3248,7 +3488,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3329,7 +3568,6 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 --- !u!223 &1096394891 Canvas: m_ObjectHideFlags: 0 @@ -3361,7 +3599,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 20} m_LocalScale: {x: 0.03, y: 0.03, z: 0.03} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2083607342} m_Father: {fileID: 0} @@ -3401,7 +3638,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1166517327} m_Father: {fileID: 2090324188} @@ -3426,7 +3662,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 0 - m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -3471,7 +3706,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3522,7 +3756,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1159593472} m_RootOrder: 0 @@ -3547,7 +3780,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3602,7 +3834,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1692572443} m_RootOrder: 0 @@ -3627,7 +3858,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3682,7 +3912,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 89791203} m_RootOrder: 0 @@ -3707,7 +3936,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3762,7 +3990,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 333616537} m_RootOrder: 0 @@ -3787,7 +4014,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3843,7 +4069,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 383858639} m_RootOrder: 1 @@ -3889,7 +4114,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.11534355, g: 0.9056604, b: 0.87502927, a: 1} m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3940,7 +4164,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1871729348} m_RootOrder: 0 @@ -3965,7 +4188,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4051,7 +4273,6 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 --- !u!223 &1469578738 Canvas: m_ObjectHideFlags: 0 @@ -4083,7 +4304,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 20} m_LocalScale: {x: 0.03, y: 0.03, z: 0.03} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1610751719} m_Father: {fileID: 0} @@ -4108,58 +4328,226 @@ MonoBehaviour: m_EditorClassIdentifier: m_RightControllerMode: 0 m_LeftControllerMode: 0 ---- !u!1001 &1541510341 -PrefabInstance: +--- !u!1 &1507292840 +GameObject: m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1913770303} - m_Modifications: - - target: {fileID: 7566242026288510528, guid: fe26b6d4f24c88f43badd1c44298baf9, type: 3} - propertyPath: m_Name - value: DummyLeftPose - objectReference: {fileID: 0} - - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, type: 3} - propertyPath: m_RootOrder - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, type: 3} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1507292841} + - component: {fileID: 1507292843} + - component: {fileID: 1507292842} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1507292841 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1507292840} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2028161080} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1507292842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1507292840} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Normal +--- !u!222 &1507292843 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1507292840} + m_CullTransparentMesh: 0 +--- !u!1 &1522366395 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1522366396} + - component: {fileID: 1522366398} + - component: {fileID: 1522366397} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1522366396 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1522366395} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 986960225} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1522366397 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1522366395} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 12 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: PT Image frate +--- !u!222 &1522366398 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1522366395} + m_CullTransparentMesh: 0 +--- !u!1001 &1541510341 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1913770303} + m_Modifications: + - target: {fileID: 7566242026288510528, guid: fe26b6d4f24c88f43badd1c44298baf9, + type: 3} + propertyPath: m_Name + value: DummyLeftPose + objectReference: {fileID: 0} + - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, + type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, type: 3} + - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, + type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, type: 3} + - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, + type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, type: 3} + - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, + type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, type: 3} + - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, + type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, type: 3} + - target: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, + type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} @@ -4167,12 +4555,14 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: fe26b6d4f24c88f43badd1c44298baf9, type: 3} --- !u!4 &1541510342 stripped Transform: - m_CorrespondingSourceObject: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, type: 3} + m_CorrespondingSourceObject: {fileID: 7566242026288510530, guid: fe26b6d4f24c88f43badd1c44298baf9, + type: 3} m_PrefabInstance: {fileID: 1541510341} m_PrefabAsset: {fileID: 0} --- !u!114 &1541510343 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7566242026288510531, guid: fe26b6d4f24c88f43badd1c44298baf9, type: 3} + m_CorrespondingSourceObject: {fileID: 7566242026288510531, guid: fe26b6d4f24c88f43badd1c44298baf9, + type: 3} m_PrefabInstance: {fileID: 1541510341} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -4209,7 +4599,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 746739515} m_RootOrder: 0 @@ -4234,7 +4623,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4289,7 +4677,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1745075642} - {fileID: 532853559} @@ -4319,7 +4706,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0, g: 0, b: 0, a: 0.392} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4371,7 +4757,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1191194414} m_Father: {fileID: 861654597} @@ -4396,7 +4781,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 0 - m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -4427,7 +4811,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1006803630362192608} - m_TargetAssemblyTypeName: m_MethodName: OnButtonClickMedium m_Mode: 1 m_Arguments: @@ -4453,7 +4836,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4504,7 +4886,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 47350100} m_RootOrder: 0 @@ -4529,7 +4910,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4585,7 +4965,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1610751719} m_RootOrder: 0 @@ -4610,7 +4989,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4738,7 +5116,6 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 5 @@ -4770,7 +5147,6 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2038209994} m_Father: {fileID: 0} @@ -4818,7 +5194,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 575572318} m_RootOrder: 1 @@ -4864,7 +5239,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.11534355, g: 0.9056604, b: 0.87502927, a: 1} m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4915,7 +5289,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 534582086} m_RootOrder: 3 @@ -4940,7 +5313,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4995,7 +5367,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 682920138} m_RootOrder: 0 @@ -5020,7 +5391,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -5074,12 +5444,12 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 746739515} - {fileID: 861654597} - {fileID: 534582086} - {fileID: 2090324188} + - {fileID: 986960225} m_Father: {fileID: 1006803629307502567} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -5113,7 +5483,6 @@ MonoBehaviour: m_ChildControlHeight: 1 m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 --- !u!1 &1871729347 GameObject: m_ObjectHideFlags: 0 @@ -5143,7 +5512,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1396125148} m_Father: {fileID: 1610751719} @@ -5168,7 +5536,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 - m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -5199,7 +5566,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1745075645} - m_TargetAssemblyTypeName: m_MethodName: HandleMode m_Mode: 1 m_Arguments: @@ -5225,7 +5591,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -5276,7 +5641,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2036827485} m_RootOrder: 0 @@ -5301,7 +5665,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -5354,7 +5717,6 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 575572318} - {fileID: 335298178} @@ -5391,7 +5753,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 581650191} m_RootOrder: 0 @@ -5416,7 +5777,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -5472,7 +5832,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2090324188} m_RootOrder: 2 @@ -5509,7 +5868,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -5536,6 +5894,214 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1996118823} m_CullTransparentMesh: 0 +--- !u!1 &2006763882 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2006763883} + - component: {fileID: 2006763885} + - component: {fileID: 2006763884} + m_Layer: 5 + m_Name: PTIRStatus + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2006763883 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2006763882} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 986960225} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2006763884 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2006763882} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 12 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: --- +--- !u!222 &2006763885 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2006763882} + m_CullTransparentMesh: 0 +--- !u!1 &2028161079 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2028161080} + - component: {fileID: 2028161083} + - component: {fileID: 2028161082} + - component: {fileID: 2028161081} + m_Layer: 5 + m_Name: Normal + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2028161080 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2028161079} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1507292841} + m_Father: {fileID: 986960225} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2028161081 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2028161079} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.353, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.353, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2028161082} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1006803630362192608} + m_MethodName: OnButtonClickRateNormal + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &2028161082 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2028161079} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2028161083 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2028161079} + m_CullTransparentMesh: 0 --- !u!1 &2036827484 GameObject: m_ObjectHideFlags: 0 @@ -5565,7 +6131,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1891532135} m_Father: {fileID: 534582086} @@ -5590,7 +6155,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 0 - m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -5621,7 +6185,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1006803630362192608} - m_TargetAssemblyTypeName: m_MethodName: OnButtonClickHandInteraction m_Mode: 1 m_Arguments: @@ -5647,7 +6210,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -5768,7 +6330,6 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1796612132} m_RootOrder: 0 @@ -5801,7 +6362,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1003923997} m_Father: {fileID: 1096394892} @@ -5827,7 +6387,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -5878,7 +6437,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 558756744} - {fileID: 1159593472} @@ -5916,7 +6474,6 @@ MonoBehaviour: m_ChildControlHeight: 1 m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 --- !u!114 &2090324190 MonoBehaviour: m_ObjectHideFlags: 0 @@ -5946,7 +6503,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0, g: 0, b: 0, a: 0.39215687} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -5997,7 +6553,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1871477114} m_Father: {fileID: 1006803630000154218} @@ -6018,7 +6573,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1006803631261751015} m_Father: {fileID: 746739515} @@ -6070,7 +6624,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 0 - m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -6101,7 +6654,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1006803630000154222} - m_TargetAssemblyTypeName: m_MethodName: BackToUpLayer m_Mode: 1 m_Arguments: @@ -6127,7 +6679,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6164,7 +6715,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 0 - m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -6195,7 +6745,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1006803630000154222} - m_TargetAssemblyTypeName: m_MethodName: ExitGame m_Mode: 1 m_Arguments: @@ -6221,7 +6770,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6246,7 +6794,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1006803630736170214} m_Father: {fileID: 746739515} @@ -6318,7 +6865,6 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 2 - m_PresetInfoIsWorld: 1 --- !u!223 &1006803630000154217 Canvas: m_ObjectHideFlags: 0 @@ -6350,7 +6896,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 20} m_LocalScale: {x: 0.03, y: 0.03, z: 0.03} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1006803629307502567} m_Father: {fileID: 0} @@ -6359,7 +6904,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: -0.65, y: -5.31} - m_SizeDelta: {x: 450, y: 180} + m_SizeDelta: {x: 500, y: 180} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1006803630000154219 MonoBehaviour: @@ -6418,7 +6963,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1006803630362192412} m_RootOrder: 0 @@ -6443,7 +6987,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6480,7 +7023,6 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1006803630119139489} m_Father: {fileID: 746739515} @@ -6505,7 +7047,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 0 - m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -6536,7 +7077,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1006803630362192608} - m_TargetAssemblyTypeName: m_MethodName: ActivateUnderlay m_Mode: 1 m_Arguments: @@ -6581,6 +7121,7 @@ MonoBehaviour: m_EditorClassIdentifier: statusIQ: {fileID: 686841716} statusIF: {fileID: 1821265852} + statusIR: {fileID: 2006763884} --- !u!114 &1006803630362192610 MonoBehaviour: m_ObjectHideFlags: 0 @@ -6596,7 +7137,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6655,7 +7195,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1006803629520103036} m_RootOrder: 0 @@ -6680,7 +7219,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6714,7 +7252,6 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6769,7 +7306,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1006803629416657764} m_RootOrder: 0 diff --git a/com.htc.upm.wave.essence/Samples~/Essence/Essence/PassThrough/Scripts/ActivatePassThrough.cs b/com.htc.upm.wave.essence/Samples~/Essence/Essence/PassThrough/Scripts/ActivatePassThrough.cs index 1877283b..2826d2a2 100644 --- a/com.htc.upm.wave.essence/Samples~/Essence/Essence/PassThrough/Scripts/ActivatePassThrough.cs +++ b/com.htc.upm.wave.essence/Samples~/Essence/Essence/PassThrough/Scripts/ActivatePassThrough.cs @@ -21,6 +21,7 @@ public class ActivatePassThrough : MonoBehaviour const string LOG_TAG = "Wave.Essence.Samples.PassThrough.ActivatePassThrough"; public Text statusIQ; public Text statusIF; + public Text statusIR; void DEBUG(string msg) { @@ -71,6 +72,23 @@ public void OnButtonClickHandInteraction() statusIF.text = "Set S. ret=" + ret; } + public void OnButtonClickRateBoost() + { + WVR_Result ret = Interop.WVR_SetPassthroughImageRate(WVR_PassthroughImageRate.Boost); + if (ret == WVR_Result.WVR_Success) + statusIR.text = "Set B. ret=0"; + else + statusIR.text = "Set B. ret=" + ret; + } + public void OnButtonClickRateNormal() + { + WVR_Result ret = Interop.WVR_SetPassthroughImageRate(WVR_PassthroughImageRate.Normal); + if (ret == WVR_Result.WVR_Success) + statusIR.text = "Set N. ret=0"; + else + statusIR.text = "Set N. ret=" + ret; + } + private void Update() { if (WXRDevice.ButtonPress(WVR_DeviceType.WVR_DeviceType_Controller_Left, WVR_InputId.WVR_InputId_Alias1_Menu)) diff --git a/com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/RaycastEyeTracking.unity b/com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/RaycastEyeTracking.unity index d84d2a0b..bb40bc3f 100644 --- a/com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/RaycastEyeTracking.unity +++ b/com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/RaycastEyeTracking.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_IndirectSpecularColor: {r: 0.0004941823, g: 0.0018090863, b: 0.006649252, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 11 + serializedVersion: 12 m_GIWorkflowMode: 1 m_GISettings: serializedVersion: 2 @@ -98,7 +98,7 @@ LightmapSettings: m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} - m_UseShadowmask: 0 + m_LightingSettings: {fileID: 1101203836} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -118,6 +118,8 @@ NavMeshSettings: manualTileSize: 0 tileSize: 256 accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 debug: m_Flags: 0 m_NavMeshData: {fileID: 0} @@ -173,6 +175,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.8549489, g: 0.8867924, b: 0.079476655, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -341,6 +344,82 @@ Transform: type: 3} m_PrefabInstance: {fileID: 108722181} m_PrefabAsset: {fileID: 0} +--- !u!1 &151423098 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 151423099} + - component: {fileID: 151423101} + - component: {fileID: 151423100} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &151423099 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 151423098} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 669814705} + m_Father: {fileID: 1087462148} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 10, y: -10} + m_SizeDelta: {x: 30, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &151423100 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 151423098} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &151423101 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 151423098} + m_CullTransparentMesh: 0 --- !u!1 &322257615 GameObject: m_ObjectHideFlags: 0 @@ -396,11 +475,11 @@ MonoBehaviour: m_ShowRay: 1 m_RayStartWidth: 0.01 m_RayEndWidth: 0.01 - m_RayMaterial: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_RayMaterial: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 3} m_Pointer: {fileID: 1625088994} m_Hand: 1 m_UsePose: 1 - m_UseDefaultPinch: 1 + m_UseDefaultPinch: 0 m_PinchStrength: 0.51 m_PinchRelease: 0.5 m_AlwaysEnable: 0 @@ -462,6 +541,7 @@ LineRenderer: m_LightProbeUsage: 0 m_ReflectionProbeUsage: 0 m_RayTracingMode: 0 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -599,6 +679,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0, g: 0.9529412, b: 1, a: 1} m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -715,6 +796,85 @@ Transform: type: 3} m_PrefabInstance: {fileID: 383839349} m_PrefabAsset: {fileID: 0} +--- !u!1 &387694692 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 387694693} + - component: {fileID: 387694695} + - component: {fileID: 387694694} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &387694693 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 387694692} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1087462148} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 9, y: -0.5} + m_SizeDelta: {x: -28, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &387694694 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 387694692} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: ' Use System Default' +--- !u!222 &387694695 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 387694692} + m_CullTransparentMesh: 0 --- !u!1001 &401394061 PrefabInstance: m_ObjectHideFlags: 0 @@ -854,6 +1014,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 0 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -884,6 +1045,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 592295752} + m_TargetAssemblyTypeName: m_MethodName: SetMixMode m_Mode: 1 m_Arguments: @@ -909,6 +1071,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1004,19 +1167,7 @@ MonoBehaviour: IsPinching: 0 m_LeftHand: 1 m_RightHand: 1 - m_UseInputAction: 0 - m_RotationInput: - m_UseReference: 0 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} + m_DefaultPinch: 0 m_AlwaysEnable: 0 pinchedL: 0 pinchedR: 0 @@ -1086,6 +1237,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1110,6 +1262,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &428898259 GameObject: m_ObjectHideFlags: 0 @@ -1163,6 +1316,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1240,6 +1394,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0, g: 0.9529412, b: 1, a: 1} m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1350,18 +1505,6 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: fe26b6d4f24c88f43badd1c44298baf9, type: 3} ---- !u!114 &499034886 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7566242026288510531, guid: fe26b6d4f24c88f43badd1c44298baf9, - type: 3} - m_PrefabInstance: {fileID: 499034885} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6864e6a9e7fce3143911e526d97a7c13, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1001 &515537589 PrefabInstance: m_ObjectHideFlags: 0 @@ -1490,6 +1633,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 0 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -1520,6 +1664,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1000386881} + m_TargetAssemblyTypeName: m_MethodName: HideIdleController m_Mode: 1 m_Arguments: @@ -1545,6 +1690,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1620,6 +1766,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1682,18 +1829,81 @@ MonoBehaviour: Enabled: 1 m_HandRaycast: Enabled: 1 ---- !u!114 &625048278 stripped +--- !u!1 &669814704 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 669814705} + - component: {fileID: 669814707} + - component: {fileID: 669814706} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &669814705 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 669814704} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 151423099} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &669814706 MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 1139730378515063766, guid: 9f0db195554da7649b9bc90f6f4a4fee, - type: 3} - m_PrefabInstance: {fileID: 1531094112} + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} + m_GameObject: {fileID: 669814704} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6864e6a9e7fce3143911e526d97a7c13, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &669814707 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 669814704} + m_CullTransparentMesh: 0 --- !u!1 &723725347 GameObject: m_ObjectHideFlags: 0 @@ -1726,6 +1936,101 @@ Transform: m_Father: {fileID: 1640511653} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &726086247 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 726086248} + - component: {fileID: 726086251} + - component: {fileID: 726086250} + - component: {fileID: 726086249} + m_Layer: 5 + m_Name: PinchText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &726086248 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 726086247} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1066173996} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 1, y: -17} + m_SizeDelta: {x: 280, y: 300} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &726086249 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 726086247} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7d5361c0f82ff9b46afdaba4935114a6, type: 3} + m_Name: + m_EditorClassIdentifier: + gaze: {fileID: 427574828} + handL: {fileID: 322257617} + handR: {fileID: 1022505880} +--- !u!114 &726086250 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 726086247} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.8549489, g: 0.8867924, b: 0.079476655, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Pinch +--- !u!222 &726086251 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 726086247} + m_CullTransparentMesh: 0 --- !u!1 &772481384 GameObject: m_ObjectHideFlags: 0 @@ -1763,7 +2068,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 300, y: -50} + m_AnchoredPosition: {x: 300, y: 3.9999733} m_SizeDelta: {x: 400, y: 260} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &772481386 @@ -1805,6 +2110,7 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 --- !u!223 &772481388 Canvas: m_ObjectHideFlags: 0 @@ -1939,6 +2245,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2041,6 +2348,7 @@ Light: m_UseColorTemperature: 0 m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &863301929 @@ -2117,6 +2425,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2141,6 +2450,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!65 &888125501 BoxCollider: m_ObjectHideFlags: 0 @@ -2286,7 +2596,7 @@ MonoBehaviour: m_ShowRay: 1 m_RayStartWidth: 0.01 m_RayEndWidth: 0.01 - m_RayMaterial: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_RayMaterial: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 3} m_Pointer: {fileID: 1813687234} m_Controller: 2 m_ControlKey: @@ -2311,6 +2621,7 @@ LineRenderer: m_LightProbeUsage: 0 m_ReflectionProbeUsage: 0 m_RayTracingMode: 0 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2450,7 +2761,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Device: 1 m_PoseSource: 5 - m_PoseProviderComponent: {fileID: 625048278} + m_PoseProviderComponent: {fileID: 0} m_TrackingType: 0 m_UpdateType: 0 m_UseRelativeTransform: 0 @@ -2511,7 +2822,7 @@ MonoBehaviour: m_ShowRay: 1 m_RayStartWidth: 0.01 m_RayEndWidth: 0.01 - m_RayMaterial: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_RayMaterial: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 3} m_Pointer: {fileID: 461310355} m_Controller: 3 m_ControlKey: @@ -2536,6 +2847,7 @@ LineRenderer: m_LightProbeUsage: 0 m_ReflectionProbeUsage: 0 m_RayTracingMode: 0 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2675,7 +2987,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Device: 1 m_PoseSource: 4 - m_PoseProviderComponent: {fileID: 499034886} + m_PoseProviderComponent: {fileID: 0} m_TrackingType: 0 m_UpdateType: 0 m_UseRelativeTransform: 0 @@ -2748,6 +3060,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2843,11 +3156,11 @@ MonoBehaviour: m_ShowRay: 1 m_RayStartWidth: 0.01 m_RayEndWidth: 0.01 - m_RayMaterial: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_RayMaterial: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 3} m_Pointer: {fileID: 372206070} m_Hand: 0 m_UsePose: 1 - m_UseDefaultPinch: 1 + m_UseDefaultPinch: 0 m_PinchStrength: 0.51 m_PinchRelease: 0.5 m_AlwaysEnable: 0 @@ -2909,6 +3222,7 @@ LineRenderer: m_LightProbeUsage: 0 m_ReflectionProbeUsage: 0 m_RayTracingMode: 0 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3004,7 +3318,7 @@ GameObject: - component: {fileID: 1066173998} - component: {fileID: 1066173997} m_Layer: 5 - m_Name: GazeRingCanvas + m_Name: PinchCanvas m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -3017,18 +3331,20 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1066173995} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalRotation: {x: 0, y: 0.13182385, z: 0, w: 0.9912732} + m_LocalPosition: {x: 0, y: 0, z: -88} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 1223617067} + - {fileID: 1087462148} + - {fileID: 726086248} m_Father: {fileID: 1417659367} m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 0, y: 15.15, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -65, y: -50} - m_SizeDelta: {x: 200, y: 260} + m_AnchoredPosition: {x: 636, y: 3.9999733} + m_SizeDelta: {x: 300, y: 400} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1066173997 MonoBehaviour: @@ -3069,6 +3385,7 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 --- !u!223 &1066173999 Canvas: m_ObjectHideFlags: 0 @@ -3090,6 +3407,182 @@ Canvas: m_SortingLayerID: 0 m_SortingOrder: 0 m_TargetDisplay: 0 +--- !u!1 &1087462147 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1087462148} + - component: {fileID: 1087462149} + - component: {fileID: 1087462150} + m_Layer: 5 + m_Name: Toggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1087462148 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1087462147} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 151423099} + - {fileID: 387694693} + m_Father: {fileID: 1066173996} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -28.000008, y: 150} + m_SizeDelta: {x: 220, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1087462149 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1087462147} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 151423100} + toggleTransition: 1 + graphic: {fileID: 669814706} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1087462150} + m_TargetAssemblyTypeName: Wave.Essence.Samples.Raycast.ToggleActionPinch, + Wave.Essence.Sample + m_MethodName: UseDefault + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_IsOn: 0 +--- !u!114 &1087462150 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1087462147} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f898d2d3669766b4dafe6f69cfab6c86, type: 3} + m_Name: + m_EditorClassIdentifier: + gaze: {fileID: 427574828} + handL: {fileID: 322257617} + handR: {fileID: 1022505880} +--- !u!850595691 &1101203836 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Settings.lighting + serializedVersion: 3 + m_GIWorkflowMode: 1 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 0 + m_BakeBackend: 0 + m_LightmapMaxSize: 1024 + m_BakeResolution: 40 + m_Padding: 2 + m_TextureCompression: 1 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 1 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 2 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_FinalGather: 0 + m_FinalGatherRayCount: 256 + m_FinalGatherFiltering: 1 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 2 + m_PVREnvironmentMIS: 0 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 --- !u!1 &1223617066 GameObject: m_ObjectHideFlags: 0 @@ -3101,9 +3594,8 @@ GameObject: - component: {fileID: 1223617067} - component: {fileID: 1223617069} - component: {fileID: 1223617068} - - component: {fileID: 1223617070} m_Layer: 5 - m_Name: PinchText + m_Name: Title m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -3117,7 +3609,7 @@ RectTransform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1223617066} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: 0, z: -0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1066173996} @@ -3125,8 +3617,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 36} - m_SizeDelta: {x: 180, y: 180} + m_AnchoredPosition: {x: 13, y: 181} + m_SizeDelta: {x: 180, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1223617068 MonoBehaviour: @@ -3141,8 +3633,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.8549489, g: 0.8867924, b: 0.079476655, a: 1} + m_Color: {r: 0.07843135, g: 0.838372, b: 0.8862745, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3150,7 +3643,7 @@ MonoBehaviour: m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 20 - m_FontStyle: 0 + m_FontStyle: 1 m_BestFit: 0 m_MinSize: 2 m_MaxSize: 40 @@ -3160,7 +3653,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: 'Gaze pinch:' + m_Text: Pinch Control --- !u!222 &1223617069 CanvasRenderer: m_ObjectHideFlags: 0 @@ -3169,19 +3662,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1223617066} m_CullTransparentMesh: 0 ---- !u!114 &1223617070 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1223617066} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0130af23575767c41a3185f045cdf47a, type: 3} - m_Name: - m_EditorClassIdentifier: - gaze: {fileID: 427574828} --- !u!1 &1227962460 GameObject: m_ObjectHideFlags: 0 @@ -3234,6 +3714,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3326,6 +3807,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.07843135, g: 0.8862745, b: 0.114815556, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3408,6 +3890,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0, g: 0, b: 0, a: 1} m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3526,6 +4009,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 0 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -3556,6 +4040,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1359888646407196} + m_TargetAssemblyTypeName: m_MethodName: ExitGame m_Mode: 1 m_Arguments: @@ -3581,6 +4066,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3664,6 +4150,7 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 --- !u!223 &1479243342 Canvas: m_ObjectHideFlags: 0 @@ -3830,6 +4317,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 0 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -3860,6 +4348,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1359888646407196} + m_TargetAssemblyTypeName: m_MethodName: BackToUpLayer m_Mode: 1 m_Arguments: @@ -3885,6 +4374,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3981,6 +4471,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0, g: 0.9529412, b: 1, a: 1} m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4150,6 +4641,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.1254902, g: 0.1254902, b: 0.1254902, a: 1} m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4236,6 +4728,7 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 --- !u!223 &1682689538 Canvas: m_ObjectHideFlags: 0 @@ -4330,6 +4823,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 0 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -4360,6 +4854,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1828555476} + m_TargetAssemblyTypeName: m_MethodName: ChangeSpace m_Mode: 1 m_Arguments: @@ -4385,6 +4880,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4481,6 +4977,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0, g: 0.9529412, b: 1, a: 1} m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4556,6 +5053,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4660,6 +5158,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.8549489, g: 0.8867924, b: 0.079476655, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4828,6 +5327,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.1254902, g: 0.1254902, b: 0.1254902, a: 1} m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -4933,6 +5433,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4957,6 +5458,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!65 &1932342753 BoxCollider: m_ObjectHideFlags: 0 @@ -5050,6 +5552,7 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 --- !u!223 &1979151969 Canvas: m_ObjectHideFlags: 0 @@ -5088,7 +5591,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 246.00002, y: 113.000015} + m_AnchoredPosition: {x: 199, y: 167} m_SizeDelta: {x: 200, y: 40} m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &1979489467 @@ -5151,6 +5654,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5175,6 +5679,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!65 &1979489471 BoxCollider: m_ObjectHideFlags: 0 @@ -5817,6 +6322,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -5859,6 +6365,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -5898,6 +6405,7 @@ MonoBehaviour: m_ChildControlHeight: 0 m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!114 &114149932164618094 MonoBehaviour: m_ObjectHideFlags: 0 @@ -5913,6 +6421,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -5941,6 +6450,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -5974,6 +6484,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1090533826741075} + m_TargetAssemblyTypeName: Wave.Essence.Samples.Raycast.ToggleAction, Wave.Essence.Sample m_MethodName: ActivateEyeTracking m_Mode: 1 m_Arguments: @@ -6000,6 +6511,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6033,6 +6545,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6062,6 +6575,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6098,6 +6612,7 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 --- !u!114 &114355493511527842 MonoBehaviour: m_ObjectHideFlags: 0 @@ -6113,6 +6628,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6142,6 +6658,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.62352943, g: 0.6745098, b: 0.93333334, a: 0.39215687} m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6171,6 +6688,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6200,6 +6718,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 0.08088237, b: 0.08088237, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6233,6 +6752,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6265,6 +6785,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -6314,6 +6835,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6343,6 +6865,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6402,6 +6925,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6431,6 +6955,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6460,6 +6985,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6496,6 +7022,7 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 --- !u!114 &114740723242242248 MonoBehaviour: m_ObjectHideFlags: 0 @@ -6511,6 +7038,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6539,6 +7067,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -6617,6 +7146,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6646,6 +7176,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0, g: 1, b: 0, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6692,6 +7223,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6725,6 +7257,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -6753,6 +7286,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -6801,6 +7335,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -6859,6 +7394,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -6887,8 +7423,8 @@ MonoBehaviour: m_TargetGraphic: {fileID: 114305613345136316} m_HandleRect: {fileID: 224225765845599858} m_Direction: 2 - m_Value: -0.00000011137802 - m_Size: 0.5388868 + m_Value: -0.000004900633 + m_Size: 0.5430801 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -7530,7 +8066,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.000019073486, y: 137.00003} + m_AnchoredPosition: {x: -0.000019073486, y: 137.00067} m_SizeDelta: {x: 0, y: 300} m_Pivot: {x: 0, y: 1} --- !u!224 &224701558979040588 diff --git a/com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/Scripts/PinchText.cs b/com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/Scripts/PinchText.cs new file mode 100644 index 00000000..7a6e302c --- /dev/null +++ b/com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/Scripts/PinchText.cs @@ -0,0 +1,63 @@ +// "Wave SDK +// © 2020 HTC Corporation. All Rights Reserved. +// +// Unless otherwise required by copyright law and practice, +// upon the execution of HTC SDK license agreement, +// HTC grants you access to and use of the Wave SDK(s). +// You shall fully comply with all of HTC’s SDK license agreement terms and +// conditions signed by you and all SDK and API requirements, +// specifications, and documentation provided by HTC to You." + +using UnityEngine; +using UnityEngine.UI; +using Wave.Essence.Hand; +using Wave.Essence.Raycast; + +namespace Wave.Essence.Samples.Raycast +{ + [RequireComponent(typeof(Text))] + public class PinchText : MonoBehaviour + { + public GazeRaycastRing gaze = null; + public HandRaycastPointer handL = null; + public HandRaycastPointer handR = null; + + Text m_Text = null; + + private void Awake() + { + m_Text = GetComponent(); + } + + void Update() + { + if (m_Text == null || HandManager.Instance == null) { return; } + + m_Text.text = "Threshold --\n"; + m_Text.text += "On: " + HandManager.Instance.GetPinchThreshold(); + m_Text.text += ", Off: " + HandManager.Instance.GetPinchOffThreshold() + "\n"; + m_Text.text += "Strength --\n"; + m_Text.text += "Left: " + HandManager.Instance.GetPinchStrength(true) + "\n"; + m_Text.text += "Right: " + HandManager.Instance.GetPinchStrength(false) + "\n"; + + m_Text.text += "Gaze --\n"; + if (gaze != null) + { + m_Text.text += "IsPinching(L): " + gaze.pinchedL + "\n"; + m_Text.text += "IsPinching(R): " + gaze.pinchedR + "\n"; + } + m_Text.text += "Left Hand --\n"; + if (handL != null) + { + m_Text.text += "On: " + handL.PinchStrength; + m_Text.text += ", Off: " + (handL.PinchStrength - handL.PinchRelease) + "\n"; + } + m_Text.text += "Right Hand --\n"; + if (handR != null) + { + m_Text.text += "On: " + handR.PinchStrength; + m_Text.text += ", Off: " + (handR.PinchStrength - handR.PinchRelease) + "\n"; + } + } + } +} diff --git a/com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/Scripts/PinchText.cs.meta b/com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/Scripts/PinchText.cs.meta new file mode 100644 index 00000000..61656877 --- /dev/null +++ b/com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/Scripts/PinchText.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7d5361c0f82ff9b46afdaba4935114a6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/Scripts/ToggleActionPinch.cs b/com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/Scripts/ToggleActionPinch.cs new file mode 100644 index 00000000..c37396af --- /dev/null +++ b/com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/Scripts/ToggleActionPinch.cs @@ -0,0 +1,40 @@ +// "Wave SDK +// © 2020 HTC Corporation. All Rights Reserved. +// +// Unless otherwise required by copyright law and practice, +// upon the execution of HTC SDK license agreement, +// HTC grants you access to and use of the Wave SDK(s). +// You shall fully comply with all of HTC’s SDK license agreement terms and +// conditions signed by you and all SDK and API requirements, +// specifications, and documentation provided by HTC to You." + +using UnityEngine; +using UnityEngine.UI; +using Wave.Essence.Raycast; + +namespace Wave.Essence.Samples.Raycast +{ + [RequireComponent(typeof(Toggle))] + public class ToggleActionPinch : MonoBehaviour + { + public GazeRaycastRing gaze = null; + public HandRaycastPointer handL = null; + public HandRaycastPointer handR = null; + + Toggle m_Toggle = null; + + private void Awake() + { + m_Toggle = GetComponent(); + } + + public void UseDefault() + { + if (m_Toggle == null) { return; } + + if (gaze != null) { gaze.ControlHand.DefaultPinch = m_Toggle.isOn; } + if (handL != null) { handL.UseDefaultPinch = m_Toggle.isOn; } + if (handR != null) { handR.UseDefaultPinch = m_Toggle.isOn; } + } + } +} diff --git a/com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/Scripts/ToggleActionPinch.cs.meta b/com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/Scripts/ToggleActionPinch.cs.meta new file mode 100644 index 00000000..bf03e467 --- /dev/null +++ b/com.htc.upm.wave.essence/Samples~/Essence/Essence/Raycast/Scripts/ToggleActionPinch.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f898d2d3669766b4dafe6f69cfab6c86 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_bodytracking.unitypackage b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_bodytracking.unitypackage index 2ad0382f..033944b9 100644 --- a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_bodytracking.unitypackage +++ b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_bodytracking.unitypackage @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4d57c12ca02edd61b24e405f6f588345c31873450a0fe336fea28918832a3768 -size 18662006 +oid sha256:f488454ea2f052d77a34f6042d1e1fd435719c8e93bb1eb9f4908a35cb918f88 +size 18661818 diff --git a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_bundlepreview.unitypackage b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_bundlepreview.unitypackage index 6467752e..1b23f04e 100644 --- a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_bundlepreview.unitypackage +++ b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_bundlepreview.unitypackage @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d40e42379224a87e170f4fa63841047460d68726a087778fd32af430b16a3bfe -size 12777 +oid sha256:0be151980106f3e212dc36c477bba9434e0f6b5ee6e5d077c7baf38c906db84d +size 12776 diff --git a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_cameratexture.unitypackage b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_cameratexture.unitypackage index 7851aea2..5155eeb2 100644 --- a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_cameratexture.unitypackage +++ b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_cameratexture.unitypackage @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3d874918a16923bc383d1b9f67ef73412db902710bf99ead047d5d8a520af74e -size 4399 +oid sha256:a03e1992df4523c8229be21477e67f1aab892d835ce781d66bf12692f9befae7 +size 4388 diff --git a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_compositorlayer.unitypackage b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_compositorlayer.unitypackage index 23b143f1..3721f751 100644 --- a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_compositorlayer.unitypackage +++ b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_compositorlayer.unitypackage @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:11ea73db5d57897e95cb95b16f96b64c35a240a2787df9f85251fbdf213ead50 -size 206088 +oid sha256:6b2c6a84898806dd4498c048b6864bf90c509307fe215c743ae133cf84fd0aad +size 206043 diff --git a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_controller_model.unitypackage b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_controller_model.unitypackage index 16277c56..20bcb479 100644 --- a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_controller_model.unitypackage +++ b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_controller_model.unitypackage @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5c607612b570ab3d4ff1df55fb2aacb41e917fce341a59e24946a0282500d273 -size 4485060 +oid sha256:096012a658413f0d2bdeeddf0794df3b2f5355cfcf83d2e8242eeb042d707e33 +size 4500253 diff --git a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_hand_model.unitypackage b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_hand_model.unitypackage index 55b80b9f..9fc35c55 100644 --- a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_hand_model.unitypackage +++ b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_hand_model.unitypackage @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:96c97435a93bbebaed138a77aaa171fd71eaebed6b25f08c0d0d83b1098edd96 -size 1826119 +oid sha256:2fda944c3d71b8d5c3d7e26752a3841dd642bfa9a017bbee212c9ccb34d53c9d +size 1827359 diff --git a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_inputmodule.unitypackage b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_inputmodule.unitypackage index 11986ef6..d2bc2952 100644 --- a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_inputmodule.unitypackage +++ b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_inputmodule.unitypackage @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:32f32491de247be600f72d39e4aca8ec9f753720c606c9bccfb76c3a39c952fb -size 2351149 +oid sha256:1c6804b295f012099f645ef5d8e34568715c94b83c4a81ce89431da582fa1767 +size 2349748 diff --git a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_interaction_mode.unitypackage b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_interaction_mode.unitypackage index 6b9fda39..342857de 100644 --- a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_interaction_mode.unitypackage +++ b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_interaction_mode.unitypackage @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b4142682bc3032cb3e1a18f3068d3459310fc8ee3d95f9b17fcae9033080ff04 -size 60352 +oid sha256:3b6cbf3a2009ee013f711e23179822508f5dc6f1adb646049d8fb0ef53316745 +size 60326 diff --git a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_interaction_toolkit.unitypackage b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_interaction_toolkit.unitypackage index 2fbe95e9..4554aa62 100644 --- a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_interaction_toolkit.unitypackage +++ b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_interaction_toolkit.unitypackage @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3575306aa4c9d9dbe113895a18985e8ce72b660a15861a4b3573fe29115ac475 -size 1474999 +oid sha256:0f231653eeb7b95795f4fd6e16e9d4ee1cfbf30e565d02f38056a8369d84db15 +size 1474903 diff --git a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_renderdoc.unitypackage b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_renderdoc.unitypackage index 1af9b352..805e2f66 100644 --- a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_renderdoc.unitypackage +++ b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_renderdoc.unitypackage @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d13ef54c0a81fcadf7ec47593640a7babac1b29f9b47595643faf5e03cfd7338 -size 7307 +oid sha256:9ee43fa0e0386a95662ea1aa7f4489439979201dca83a2bb1351b6c1cba30abc +size 7297 diff --git a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_sceneperception.unitypackage b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_sceneperception.unitypackage index a23a5b2a..26b6a2ca 100644 --- a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_sceneperception.unitypackage +++ b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_sceneperception.unitypackage @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a3f23de15a180accc26ecf7604661f8598065d802599690dccd98748b52946b3 -size 98741 +oid sha256:8252986e65be004d0646ad836292c2b4faf2a3bd6ac774035de0afbd9d2b95ee +size 98626 diff --git a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_spectator.unitypackage b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_spectator.unitypackage index 597f74df..b3507251 100644 --- a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_spectator.unitypackage +++ b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_spectator.unitypackage @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:509c96d254c5b5a88d3cfe0d35064f32188b74a2719998bc27e533cb2aa2b699 -size 180705 +oid sha256:d3dce22a03b5874d8ce7949dd338e333a67fbc8246997c8bcbd4a53fae7e0471 +size 184774 diff --git a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_trackablemarker.unitypackage b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_trackablemarker.unitypackage index e23a3059..b60b11e8 100644 --- a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_trackablemarker.unitypackage +++ b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_trackablemarker.unitypackage @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1ed0dad01166ac102cd2f537514444d01a54604870de264806e86ce6187e02d5 -size 36506 +oid sha256:168a9950eefa856f40e4e8f59dc8291fe49b0b4f4ae2679e1ad19d9a47bf0b82 +size 36475 diff --git a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_tracker_model.unitypackage b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_tracker_model.unitypackage index ce1f0077..ae80198a 100644 --- a/com.htc.upm.wave.essence/UnityPackages~/wave_essence_tracker_model.unitypackage +++ b/com.htc.upm.wave.essence/UnityPackages~/wave_essence_tracker_model.unitypackage @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:87e4bbaf961bb404ab1b6d8f69604a9af8cde615d28e84a3b3de70ba63792bb6 -size 8618141 +oid sha256:e7fc60a12c2b94c10dd179d915f397f26e7b469f68c32df5b92a3372b1e175a5 +size 8619185 diff --git a/com.htc.upm.wave.essence/package.json b/com.htc.upm.wave.essence/package.json index 198ab886..2fc912b2 100644 --- a/com.htc.upm.wave.essence/package.json +++ b/com.htc.upm.wave.essence/package.json @@ -1,7 +1,7 @@ { "name": "com.htc.upm.wave.essence", "displayName": "VIVE Wave XR Plugin - Essence", - "version": "5.4.0-r.8", + "version": "5.5.0-r.10", "unity": "2019.4", "description": "The \"VIVE Wave XR Plugin - Essence\" package built on top of the \"VIVE Wave XR Plugin - Native\" package.The package provides rich features that make your developerment easier.\n\nYou can view the documentation for additional information.\n\n", "keywords": [ @@ -15,8 +15,8 @@ "url": "https://www.htc.com" }, "dependencies": { - "com.htc.upm.wave.xrsdk": "5.4.0-r.8", - "com.htc.upm.wave.native": "5.4.0-r.8" + "com.htc.upm.wave.xrsdk": "5.5.0-r.10", + "com.htc.upm.wave.native": "5.5.0-r.10" }, "samples": [ { diff --git a/com.htc.upm.wave.essence/package.tm1 b/com.htc.upm.wave.essence/package.tm1 index 38aca606..3180fa54 100644 --- a/com.htc.upm.wave.essence/package.tm1 +++ b/com.htc.upm.wave.essence/package.tm1 @@ -1,7 +1,7 @@ { "name": "com.htc.upm.wave.essence", "displayName": "VIVE Wave XR Plugin - Essence", - "version": "5.4.0-preview.0", + "version": "5.5.0-preview.0", "unity": "2019.4", "description": "The \u0022VIVE Wave XR Plugin - Essence\u0022 package built on top of the \u0022VIVE Wave XR Plugin - Native\u0022 package.The package provides rich features that make your developerment easier.\n\nYou can view the documentation for additional information.\n\n", "keywords": [ @@ -15,8 +15,8 @@ "url": "https://www.htc.com" }, "dependencies": { - "com.htc.upm.wave.xrsdk": "5.4.0-preview.0", - "com.htc.upm.wave.native": "5.4.0-preview.0" + "com.htc.upm.wave.xrsdk": "5.5.0-preview.0", + "com.htc.upm.wave.native": "5.5.0-preview.0" }, "samples": [ { diff --git a/com.htc.upm.wave.essence/package.tm1.meta b/com.htc.upm.wave.essence/package.tm1.meta index 48947839..53ba87bb 100644 --- a/com.htc.upm.wave.essence/package.tm1.meta +++ b/com.htc.upm.wave.essence/package.tm1.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f7fcce3a044e3ca449b66b1340fea08a +guid: 9650f8802a3cdf04eb2cea4ff8fa7a56 DefaultImporter: externalObjects: {} userData: diff --git a/com.htc.upm.wave.native/Runtime/Scripts/WVR_Android.cs b/com.htc.upm.wave.native/Runtime/Scripts/WVR_Android.cs index 2c767685..d0497977 100644 --- a/com.htc.upm.wave.native/Runtime/Scripts/WVR_Android.cs +++ b/com.htc.upm.wave.native/Runtime/Scripts/WVR_Android.cs @@ -1975,6 +1975,15 @@ public override bool WVR_SetPassthroughImageFocus(WVR_PassthroughImageFocus focu return WVR_SetPassthroughImageFocus_Android(focus); } + [DllImport("wvr_api", EntryPoint = "WVR_SetPassthroughImageRate", CallingConvention = CallingConvention.Cdecl)] + public static extern WVR_Result WVR_SetPassthroughImageRate_Android(WVR_PassthroughImageRate rate); + + public override WVR_Result SetPassthroughImageRate(WVR_PassthroughImageRate rate) + { + return WVR_SetPassthroughImageRate_Android(rate); + } + + [DllImport("wvr_api", EntryPoint = "WVR_EnableHandleDisplayChanged", CallingConvention = CallingConvention.Cdecl)] public static extern void WVR_EnableHandleDisplayChanged_Android(bool enable); public override void EnableHandleDisplayChanged(bool enable) diff --git a/com.htc.upm.wave.native/Runtime/Scripts/WVR_EditorImpl.cs b/com.htc.upm.wave.native/Runtime/Scripts/WVR_EditorImpl.cs index c58b1e7d..484f912b 100644 --- a/com.htc.upm.wave.native/Runtime/Scripts/WVR_EditorImpl.cs +++ b/com.htc.upm.wave.native/Runtime/Scripts/WVR_EditorImpl.cs @@ -2603,7 +2603,8 @@ private void FillHandTrackerInfo(WVR_HandTrackerType tracker) offset += Marshal.SizeOf(ulong_type); }*/ - handTrackerInfo.pinchThreshold = 0.2f; + handTrackerInfo.pinchThreshold = 0.51f; + handTrackerInfo.pinchOff = 0.2f; } public WVR_Result GetHandTrackerInfo(WVR_HandTrackerType tracker, ref WVR_HandTrackerInfo_t info) { diff --git a/com.htc.upm.wave.native/Runtime/Scripts/wvr.cs b/com.htc.upm.wave.native/Runtime/Scripts/wvr.cs index 2e43dc56..f6b9972d 100644 --- a/com.htc.upm.wave.native/Runtime/Scripts/wvr.cs +++ b/com.htc.upm.wave.native/Runtime/Scripts/wvr.cs @@ -2021,6 +2021,15 @@ public enum WVR_PassthroughImageFocus View = 1 } + /** + * @brief Enum used for indicating the passthrough image's refresh rate. + */ + public enum WVR_PassthroughImageRate + { + Boost = 0, // Default passthrough image's refresh rate (default). + Normal = 1 // Reduce the passthrough image's refresh rate for performance improvement. + } + public delegate void WVR_RequestCompleteCallback(List results); public delegate void WVR_RequestUsbCompleteCallback(bool result); public delegate void WVR_OnOEMConfigChanged(); @@ -3245,6 +3254,17 @@ public static bool WVR_SetPassthroughImageFocus(WVR_PassthroughImageFocus focus) return WVR_Base.Instance.WVR_SetPassthroughImageFocus(focus); } + /** + * Function to set passthrough image's refresh rate. + * The API adjusts the refresh rate of passthourgh image to the WaveVR Runtime, + * Affects the WVR_ShowPassthroughOverlay(), WVR_ShowPassthroughUnderlay and WVR_ShowProjectedPassthrough + */ + public static WVR_Result WVR_SetPassthroughImageRate(WVR_PassthroughImageRate rate) + { + return WVR_Base.Instance.SetPassthroughImageRate(rate); + } + + public static void WVR_EnableHandleDisplayChanged(bool enable) { WVR_Base.Instance.EnableHandleDisplayChanged(enable); @@ -4720,6 +4740,11 @@ public virtual bool WVR_SetPassthroughImageFocus(WVR_PassthroughImageFocus focus return false; } + public virtual WVR_Result SetPassthroughImageRate(WVR_PassthroughImageRate rate) + { + return WVR_Result.WVR_Success; + } + public virtual void EnableHandleDisplayChanged(bool enable) { return; diff --git a/com.htc.upm.wave.native/package.json b/com.htc.upm.wave.native/package.json index f0683d54..a12c618e 100644 --- a/com.htc.upm.wave.native/package.json +++ b/com.htc.upm.wave.native/package.json @@ -1,7 +1,7 @@ { "name": "com.htc.upm.wave.native", "displayName": "VIVE Wave XR Plugin - Native", - "version": "5.4.0-r.8", + "version": "5.5.0-r.10", "unity": "2019.4", "description": "The \"VIVE Wave XR Plugin - Native\" package provides the wraper of WaveVR.\n\nView the documentation for additional information.\n\n", "keywords": [ @@ -15,7 +15,7 @@ "url": "https://www.htc.com" }, "dependencies": { - "com.htc.upm.wave.xrsdk": "5.4.0-r.8" + "com.htc.upm.wave.xrsdk": "5.5.0-r.10" }, "samples": [ { diff --git a/com.htc.upm.wave.native/package.tm1 b/com.htc.upm.wave.native/package.tm1 index 2a8484c3..84fe0107 100644 --- a/com.htc.upm.wave.native/package.tm1 +++ b/com.htc.upm.wave.native/package.tm1 @@ -1,7 +1,7 @@ { "name": "com.htc.upm.wave.native", "displayName": "VIVE Wave XR Plugin - Native", - "version": "5.4.0-preview.0", + "version": "5.5.0-preview.0", "unity": "2019.4", "description": "The \u0022VIVE Wave XR Plugin - Native\u0022 package provides the wraper of WaveVR.\n\nView the documentation for additional information.\n\n", "keywords": [ @@ -15,7 +15,7 @@ "url": "https://www.htc.com" }, "dependencies": { - "com.htc.upm.wave.xrsdk": "5.4.0-preview.0" + "com.htc.upm.wave.xrsdk": "5.5.0-preview.0" }, "samples": [ { diff --git a/com.htc.upm.wave.native/package.tm1.meta b/com.htc.upm.wave.native/package.tm1.meta index e7023b13..13b274b1 100644 --- a/com.htc.upm.wave.native/package.tm1.meta +++ b/com.htc.upm.wave.native/package.tm1.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d4d65746ff98c8d4695595b6a0613302 +guid: cbcc5bcb6cd165d4daa5188eaa312b51 DefaultImporter: externalObjects: {} userData: diff --git a/com.htc.upm.wave.xrsdk/Editor/WaveXRBuildCheck.cs b/com.htc.upm.wave.xrsdk/Editor/WaveXRBuildCheck.cs index c9538d99..f9de43de 100644 --- a/com.htc.upm.wave.xrsdk/Editor/WaveXRBuildCheck.cs +++ b/com.htc.upm.wave.xrsdk/Editor/WaveXRBuildCheck.cs @@ -1194,7 +1194,7 @@ public static bool ValidateEnabled() return true; } } - + /* [InitializeOnLoad] public static class MenuAvatarIKHandler { @@ -1303,7 +1303,7 @@ static MenuAvatarIKHandler() }; } - //[MenuItem(MenuAvatarIKHandler.MENU_NAME, priority = 604)] + [MenuItem(MenuAvatarIKHandler.MENU_NAME, priority = 604)] private static void ToggleAction() { /// Toggling action @@ -1328,12 +1328,13 @@ private static void PerformAction(bool enabled) MenuAvatarIKHandler.m_Enabled = enabled; } - //[MenuItem(MenuAvatarIKHandler.MENU_NAME, validate = true, priority = 604)] + [MenuItem(MenuAvatarIKHandler.MENU_NAME, validate = true, priority = 604)] private static bool ValidateEnabled() { Menu.SetChecked(MenuAvatarIKHandler.MENU_NAME, m_Enabled); return true; } } + */ } #endif diff --git a/com.htc.upm.wave.xrsdk/Editor/WaveXRBuildProcessor.cs b/com.htc.upm.wave.xrsdk/Editor/WaveXRBuildProcessor.cs index f26675c0..2636891e 100644 --- a/com.htc.upm.wave.xrsdk/Editor/WaveXRBuildProcessor.cs +++ b/com.htc.upm.wave.xrsdk/Editor/WaveXRBuildProcessor.cs @@ -54,7 +54,12 @@ public void OnPreprocessBuild(BuildReport report) // dirty later builds with assets that may not be needed or are out of date. CleanOldSettings(); - WaveXRSettings settings = null; + if ((PlayerSettings.Android.targetArchitectures & AndroidArchitecture.ARMv7) != 0) + { + throw new BuildFailedException("Wave SDK No Longer Support 32 bit."); + } + + WaveXRSettings settings = null; UnityEngine.Object obj = null; bool hasObj = EditorBuildSettings.TryGetConfigObject(Constants.k_SettingsKey, out obj); if (obj == null || !(obj is WaveXRSettings)) @@ -96,25 +101,16 @@ void CheckSpectatorCamera360CaptureFeature(WaveXRSettings waveXRSettings) const string WaveXRSettingsNotFoundWarningMessage = "WaveXRSettings is null. " + "Please check or reinstall the WaveXR SDK."; + + const string WaveSpectatorCameraFeatureDisableMessage = + "Spectator camera feature is not enabled. " + + "No need to check related setting when building."; const string Wave360EnableButPlayerSetting360DisableWarningMessage = "Attribute \"allowSpectatorCameraCapture360Image\" is enabled on the WaveXR Setting, " + "but the \"enable360StereoCapture\" in the Unity Player Settings is closed. " + "The above settings are mutually exclusive. Will close the 360 image capture feature on" + "Wave XR Setting"; - - const string WaveSpectatorCameraFeatureDisableMessage = - "Spectator camera feature is not enabled. " + - "No need to check related setting when building."; - - const string WaveSpectatorCamera360CaptureFeatureDisableMessage = - "Capture 360 image via Spectator camera is not enabled. " + - "No need to check related setting when building."; - - const string Wave360APINotCompatibleWarningMessage = - "Capture 360 images throughout Wave Spectator Camera needs the Android SDK Versions " + - "not higher than 29, but the current version is {0}. Please change the Android SDK " + - "Versions to 29 or lower in the Unity Player Settings."; #region Check Wave XR Setting is exist @@ -145,26 +141,6 @@ void CheckSpectatorCamera360CaptureFeature(WaveXRSettings waveXRSettings) } #endregion - - // If the capture 360 image feature is not enabled, - // not need to run the logic related to 360 capture - if (waveXRSettings.allowSpectatorCameraCapture360Image is false) - { - Debug.Log(WaveSpectatorCamera360CaptureFeatureDisableMessage); - return; - } - - #region Check Android API level is compatible with 360 capture feature if it is enabled - - if (waveXRSettings.allowSpectatorCameraCapture360Image && - PlayerSettings.Android.targetSdkVersion > AndroidSdkVersions.AndroidApiLevel29) - { - string warningMessage = - string.Format(Wave360APINotCompatibleWarningMessage, PlayerSettings.Android.targetSdkVersion); - Debug.LogWarning(warningMessage); - } - - #endregion } #endregion @@ -193,7 +169,6 @@ public static class FeatureName public static class PermissionName { public static readonly string SceneMesh = "wave.permission.GET_SCENE_MESH"; - public static readonly string WriteExternalStorage = "android.permission.WRITE_EXTERNAL_STORAGE"; } } @@ -249,8 +224,6 @@ public void OnPostGenerateGradleAndroidProject(string path) //IPostGenerateGradl appendMarker: addMarker); androidManifest.AddSkipPermissionDialogMetaData(); - - androidManifest.AddSpectatorCamera360CaptureFeature(doc, waveXRSettings); androidManifest.Save(); } @@ -468,43 +441,6 @@ internal void AddWaveMetaData(bool appendSupportedFPS = false) } - public void AddSpectatorCamera360CaptureFeature(XmlDocument doc, WaveXRSettings waveXRSettings) - { - const string requestLegacyExternalStorageString = "android:requestLegacyExternalStorage"; - - if (waveXRSettings.allowSpectatorCamera && - waveXRSettings.allowSpectatorCameraCapture360Image) - { - if (ApplicationElement.Attributes?[requestLegacyExternalStorageString] != null) - { - if (ApplicationElement.Attributes[requestLegacyExternalStorageString].Value != "true") - { - ApplicationElement.Attributes[requestLegacyExternalStorageString].Value = "true"; - } - } - else - { - ApplicationElement.Attributes.Append(CreateAndroidAttribute("requestLegacyExternalStorage", "true")); - } - - if (!CheckWavePermission(doc, ManifestAttributeStringDefinition.PermissionName.WriteExternalStorage)) - { - var spectatorCameraFeaturePermissionElement = - ManifestElement.AppendChild(CreateElement("uses-permission")); - spectatorCameraFeaturePermissionElement.Attributes.Append( - CreateAndroidAttribute( - "name", - ManifestAttributeStringDefinition.PermissionName.WriteExternalStorage) - ); - } - } - else - { - Debug.Log("Spectator camera or 360 capture feature is not enabled. " + - "No need to add related permission and flag in Android Manifest."); - } - } - internal void AddWaveFeatures(bool appendHandTracking = false, bool appendTracker = false, bool appendSimultaneousInteraction = false, diff --git a/com.htc.upm.wave.xrsdk/Editor/WaveXRPlayerSettingsConfigDialog.cs b/com.htc.upm.wave.xrsdk/Editor/WaveXRPlayerSettingsConfigDialog.cs index 3b1635d6..e810d650 100644 --- a/com.htc.upm.wave.xrsdk/Editor/WaveXRPlayerSettingsConfigDialog.cs +++ b/com.htc.upm.wave.xrsdk/Editor/WaveXRPlayerSettingsConfigDialog.cs @@ -199,6 +199,20 @@ static List GetItems() { Set = () => { PlayerSettings.gpuSkinning = false; } }; + var scriptingBackend = new Item("ScriptingBackend", ScriptingImplementation.IL2CPP.ToString()) + { + IsReady = () => { return PlayerSettings.GetScriptingBackend(BuildTargetGroup.Android) == ScriptingImplementation.IL2CPP; }, + GetCurrent = () => { return PlayerSettings.GetScriptingBackend(BuildTargetGroup.Android).ToString(); }, + Set = () => { PlayerSettings.SetScriptingBackend(BuildTargetGroup.Android, ScriptingImplementation.IL2CPP); } + }; + + var androidArchitecture = new Item("AndroidArchitecture", AndroidArchitecture.ARM64.ToString()) + { + IsReady = () => { return PlayerSettings.Android.targetArchitectures == AndroidArchitecture.ARM64; }, + GetCurrent = () => { return PlayerSettings.Android.targetArchitectures.ToString(); }, + Set = () => { PlayerSettings.Android.targetArchitectures = AndroidArchitecture.ARM64; } + }; + return new List() { builtTarget, @@ -208,7 +222,9 @@ static List GetItems() { autoGraphicsAPi, graphicsApis, AndroidMinSDK, - AndroidTargetSDK + AndroidTargetSDK, + scriptingBackend, + androidArchitecture }; } diff --git a/com.htc.upm.wave.xrsdk/Editor/WaveXRSettingsEditor.cs b/com.htc.upm.wave.xrsdk/Editor/WaveXRSettingsEditor.cs index c1247345..263318f3 100644 --- a/com.htc.upm.wave.xrsdk/Editor/WaveXRSettingsEditor.cs +++ b/com.htc.upm.wave.xrsdk/Editor/WaveXRSettingsEditor.cs @@ -1,4 +1,13 @@ -using System.Collections.Generic; +// "WaveVR SDK +// © 2017 HTC Corporation. All Rights Reserved. +// +// Unless otherwise required by copyright law and practice, +// upon the execution of HTC SDK license agreement, +// HTC grants you access to and use of the WaveVR SDK(s). +// You shall fully comply with all of HTC’s SDK license agreement terms and +// conditions signed by you and all SDK and API requirements, +// specifications, and documentation provided by HTC to You." + using UnityEditor; using UnityEditorInternal; using UnityEngine; @@ -274,9 +283,7 @@ public class WaveXRSettingsEditor : UnityEditor.Editor "Allow Capture 360 Image", "Allow the spectator camera to capture 360 images. Addition Request:\n" + "1.) Open the \"enable360StereoCapture\" in the Unity Player Setting " + - "Page\n2.) Set the Android target API Level to 29 or lower\n3.) Add " + - "the write external storage permission and legacy external storage " + - "flag in the AndroidManifest.xml file."); + "Page"); SerializedProperty Property_AllowSpectatorCameraCapture360Image; @@ -467,45 +474,20 @@ public void AndroidSettings() MultiLayerGUI(); #region Spectator Camera Setting - - const string Capture360ImageToggleTitle = - "Allow Capture 360 Image"; - const string Capture360ImageToggleHint = - "Allow the spectator camera to capture 360 images. Addition Request:\n" + - "1.) Open the \"enable360StereoCapture\" in the Unity Player Setting " + - "Page\n2.) Set the Android target API Level to 29 or lower\n3.) Add " + - "the write external storage permission and legacy external storage " + - "flag in the AndroidManifest.xml file."; - const string AcceptButtonString = + + const string acceptButtonString = "OK"; - const string CancelButtonString = + const string cancelButtonString = "Cancel"; - const string OpenCapture360ImageAdditionRequestTitle = + const string openCapture360ImageAdditionRequestTitle = "Additional Request of Capturing 360 Image throughout the Spectator Camera"; - const string OpenCapture360ImageAdditionRequestDescription = + const string openCapture360ImageAdditionRequestDescription = "Allow the spectator camera to capture 360 images. Addition Request:\n" + "1.) Open the \"enable360StereoCapture\" in the Unity Player Setting " + - "Page.\n2.) Set the Android target API Level to 29 or lower.\n3.) Add " + - "the write external storage permission and legacy external storage " + - "flag in the AndroidManifest.xml file."; - const string ConfirmModifySettingTitle = - "Will modify the setting as the following, please confirm."; - const string Modify360StereoCaptureDescription = - "PlayerSettings.enable360StereoCapture\n" + - "Current value: FALSE; Will set to TRUE."; - string modifyAPILevelDescription = - "PlayerSettings.Android.targetSdkVersion\n" + - $"Current value: {PlayerSettings.Android.targetSdkVersion}; " + - $"Will set to AndroidApiLevel29."; - string modify360StereoCaptureAndAPILevelDescription = - "PlayerSettings.enable360StereoCapture\n" + - $"Current value: FALSE; Will set to TRUE.\n\n" + - $"PlayerSettings.Android.targetSdkVersion\n" + - $"Current value: {PlayerSettings.Android.targetSdkVersion}; " + - $"Will set to AndroidApiLevel29."; + "Page."; EditorGUILayout.PropertyField(Property_AllowSpectatorCamera, Label_AllowSpectatorCamera); - WaveXRSettings mySettings = target as WaveXRSettings; + var mySettings = target as WaveXRSettings; if (mySettings.allowSpectatorCamera) { EditorGUI.indentLevel++; @@ -521,63 +503,23 @@ public void AndroidSettings() if (!currentValue) { bool isEnable360StereoCapture = PlayerSettings.enable360StereoCapture; - bool isCompatibleAPILevel = - PlayerSettings.Android.targetSdkVersion <= AndroidSdkVersions.AndroidApiLevel29; - - var acceptDialog1 = EditorUtility.DisplayDialog( - OpenCapture360ImageAdditionRequestTitle, - OpenCapture360ImageAdditionRequestDescription, - AcceptButtonString, - CancelButtonString); - if (acceptDialog1) - { - bool acceptDialog2 = false; - if (!isEnable360StereoCapture && !isCompatibleAPILevel) - { - acceptDialog2 = EditorUtility.DisplayDialog( - ConfirmModifySettingTitle, - modify360StereoCaptureAndAPILevelDescription, - AcceptButtonString, - CancelButtonString); - } - else if (!isEnable360StereoCapture && isCompatibleAPILevel) - { - acceptDialog2 = EditorUtility.DisplayDialog( - ConfirmModifySettingTitle, - Modify360StereoCaptureDescription, - AcceptButtonString, - CancelButtonString); - } - else if (isEnable360StereoCapture && !isCompatibleAPILevel) - { - acceptDialog2 = EditorUtility.DisplayDialog( - ConfirmModifySettingTitle, - modifyAPILevelDescription, - AcceptButtonString, - CancelButtonString); - } - - if (acceptDialog2) - { - if (!isEnable360StereoCapture) - { - PlayerSettings.enable360StereoCapture = true; - } - - if (!isCompatibleAPILevel) - { - PlayerSettings.Android.targetSdkVersion = AndroidSdkVersions.AndroidApiLevel29; - } - } - else if (!acceptDialog2 && (!isEnable360StereoCapture || !isCompatibleAPILevel)) - { - Property_AllowSpectatorCameraCapture360Image.boolValue = false; - } - } - else - { - Property_AllowSpectatorCameraCapture360Image.boolValue = false; - } + if (!isEnable360StereoCapture) + { + bool acceptDialog1 = EditorUtility.DisplayDialog( + openCapture360ImageAdditionRequestTitle, + openCapture360ImageAdditionRequestDescription, + acceptButtonString, + cancelButtonString); + + if (acceptDialog1) + { + PlayerSettings.enable360StereoCapture = true; + } + else + { + Property_AllowSpectatorCameraCapture360Image.boolValue = false; + } + } } } diff --git a/com.htc.upm.wave.xrsdk/Editor/XRSDKSettingsProvider.cs b/com.htc.upm.wave.xrsdk/Editor/XRSDKSettingsProvider.cs index 84d2860b..6a90af9f 100644 --- a/com.htc.upm.wave.xrsdk/Editor/XRSDKSettingsProvider.cs +++ b/com.htc.upm.wave.xrsdk/Editor/XRSDKSettingsProvider.cs @@ -46,6 +46,7 @@ private static void CheckingWavePackagePath() "Wave", "XR", "AndroidManifest", + "MRTKSupport", }; public XRSDKSettingsProvider(string path, SettingsScope scope = SettingsScope.Project) @@ -62,16 +63,20 @@ internal static void Init() public override void OnGUI(string searchContext) { bool m_FeatureAndroidManifestImported = Directory.Exists(WaveXRPath + "/Platform/Android"); + bool m_FeatureMRTKSupportImported = Directory.Exists(WaveXRPath + "/MRTKSupport"); bool hasKeyword = false; bool showAndroidManifest = false; + bool showMRTKSupport = false; showAndroidManifest = searchContext.Contains("AndroidManifest"); - if(showAndroidManifest) + showMRTKSupport = searchContext.Contains("MRTKSupport"); + if (showAndroidManifest || showMRTKSupport) hasKeyword = true; /** * GUI layout of features. * 1. AndroidManifest + * 2. MRTK Support **/ if (showAndroidManifest || !hasKeyword) { @@ -89,6 +94,26 @@ public override void OnGUI(string searchContext) } GUILayout.EndVertical(); } + + if (showMRTKSupport || !hasKeyword) + { + GUILayout.BeginVertical(EditorStyles.helpBox); + { + GUILayout.Label("MRTK Support", EditorStyles.boldLabel); + GUILayout.Label("MRTK support is a feature that enables you to run apps built with MRTK on VIVE.", new GUIStyle(EditorStyles.label) { wordWrap = true }); + GUILayout.Label("The feature will be imported at " + WaveXRPath + "/MRTKSupport.", EditorStyles.label); + GUILayout.Space(5f); + GUI.enabled = !m_FeatureMRTKSupportImported; + if (GUILayout.Button("Import Feature - MRTK 2.8.3 Support", GUILayout.ExpandWidth(false))) + ImportModule("Packages/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/2.8.3/wave_xrsdk_mrtksupport.unitypackage", false); + GUILayout.Space(5f); + if (GUILayout.Button("Import Feature - MRTK 3.0.0 Support", GUILayout.ExpandWidth(false))) + ImportModule("Packages/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/3.0.0/wave_xrsdk_mrtksupport.unitypackage", false); + GUILayout.Space(5f); + GUI.enabled = true; + } + GUILayout.EndVertical(); + } } public static void MoveFolder(string srcpath, string destpath) @@ -124,9 +149,9 @@ public static void CleanHouse() File.Delete("Assets/Wave.meta"); } - private void ImportModule(string packagePath) + private void ImportModule(string packagePath, bool padding = true) { - string target = Path.Combine("Packages/com.htc.upm.wave.xrsdk/UnityPackages~", packagePath); + string target = padding == true? Path.Combine("Packages/com.htc.upm.wave.xrsdk/UnityPackages~", packagePath) : packagePath; Debug.Log("Import: " + target); AssetDatabase.ImportPackage(target, false); } diff --git a/com.htc.upm.wave.xrsdk/Runtime/Android/arm64-v8a/libGfxWXRUnity.so b/com.htc.upm.wave.xrsdk/Runtime/Android/arm64-v8a/libGfxWXRUnity.so index bfb8ee91..fc194a94 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/Android/arm64-v8a/libGfxWXRUnity.so +++ b/com.htc.upm.wave.xrsdk/Runtime/Android/arm64-v8a/libGfxWXRUnity.so @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6dd9fefe449f474517fc5d6099b0ed99f6a15d7cbe0f2160cf7e99a07780d9e8 +oid sha256:796f2f90f650c2f1faf4be782ffdec8d46c0e4e0d66befa9c9f7da074244ec8a size 5896 diff --git a/com.htc.upm.wave.xrsdk/Runtime/Android/arm64-v8a/libwvrunityxr.so b/com.htc.upm.wave.xrsdk/Runtime/Android/arm64-v8a/libwvrunityxr.so index c61a0987..69179aba 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/Android/arm64-v8a/libwvrunityxr.so +++ b/com.htc.upm.wave.xrsdk/Runtime/Android/arm64-v8a/libwvrunityxr.so @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:558deed4ed684a9925e759ad64d7b94f3b21dddb67f90a78593d82714f38ebb0 -size 2037864 +oid sha256:bf4226740b7ddfc0a43421730226ff64e8312b09e86b3248cb357d5f25134cd3 +size 2025576 diff --git a/com.htc.upm.wave.xrsdk/Runtime/Android/arm64-v8a/libwvrxrplugin.so b/com.htc.upm.wave.xrsdk/Runtime/Android/arm64-v8a/libwvrxrplugin.so index a3ad35ea..fa1f7d1b 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/Android/arm64-v8a/libwvrxrplugin.so +++ b/com.htc.upm.wave.xrsdk/Runtime/Android/arm64-v8a/libwvrxrplugin.so @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ae276e2e483fd6061309d1d4ce19e2a3f8638f47ca359ddd02cedfa3dcb23d7e +oid sha256:cc321813d68946c03683f72ed018bdbbb7a517cbc9be288fc9aae5eb3f1d2b19 size 255952 diff --git a/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libGfxWXRUnity.so b/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libGfxWXRUnity.so deleted file mode 100644 index 8479d772..00000000 --- a/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libGfxWXRUnity.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:db3c5fe85efa9ccc2db1da3773b87ac2c7c0f469438a89011a47c0f5ab7746a5 -size 13848 diff --git a/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libGfxWXRUnity.so.meta b/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libGfxWXRUnity.so.meta deleted file mode 100644 index ab6fae6c..00000000 --- a/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libGfxWXRUnity.so.meta +++ /dev/null @@ -1,70 +0,0 @@ -fileFormatVersion: 2 -guid: ba284d6df2b0837448c148c5055a2ec0 -PluginImporter: - externalObjects: {} - serializedVersion: 2 - iconMap: {} - executionOrder: {} - defineConstraints: [] - isPreloaded: 1 - isOverridable: 1 - isExplicitlyReferenced: 0 - validateReferences: 1 - platformData: - - first: - : Any - second: - enabled: 0 - settings: - Exclude Android: 0 - Exclude Editor: 1 - Exclude Linux64: 1 - Exclude OSXUniversal: 1 - Exclude Win: 1 - Exclude Win64: 1 - - first: - Android: Android - second: - enabled: 1 - settings: - CPU: ARMv7 - - first: - Any: - second: - enabled: 0 - settings: {} - - first: - Editor: Editor - second: - enabled: 0 - settings: - CPU: AnyCPU - DefaultValueInitialized: true - OS: AnyOS - - first: - Standalone: Linux64 - second: - enabled: 0 - settings: - CPU: None - - first: - Standalone: OSXUniversal - second: - enabled: 0 - settings: - CPU: None - - first: - Standalone: Win - second: - enabled: 0 - settings: - CPU: None - - first: - Standalone: Win64 - second: - enabled: 0 - settings: - CPU: None - userData: - assetBundleName: - assetBundleVariant: diff --git a/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libwvrunityxr.so b/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libwvrunityxr.so deleted file mode 100644 index 53966871..00000000 --- a/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libwvrunityxr.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ea6b46b95c3deedb0763b19cc4515c05bc66725f621bcf6f3d9d1c2ac096bdaf -size 1263236 diff --git a/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libwvrunityxr.so.meta b/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libwvrunityxr.so.meta deleted file mode 100644 index 3f35261c..00000000 --- a/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libwvrunityxr.so.meta +++ /dev/null @@ -1,82 +0,0 @@ -fileFormatVersion: 2 -guid: a26df3476e51d384abbb3177d3d169e6 -PluginImporter: - externalObjects: {} - serializedVersion: 2 - iconMap: {} - executionOrder: {} - defineConstraints: [] - isPreloaded: 0 - isOverridable: 1 - isExplicitlyReferenced: 0 - validateReferences: 1 - platformData: - - first: - : Any - second: - enabled: 0 - settings: - Exclude Android: 0 - Exclude Editor: 1 - Exclude Linux64: 1 - Exclude OSXUniversal: 1 - Exclude Win: 1 - Exclude Win64: 1 - - first: - Android: Android - second: - enabled: 1 - settings: - CPU: ARMv7 - - first: - Any: - second: - enabled: 0 - settings: {} - - first: - Editor: Editor - second: - enabled: 0 - settings: - CPU: AnyCPU - DefaultValueInitialized: true - OS: AnyOS - - first: - Facebook: Win - second: - enabled: 0 - settings: - CPU: AnyCPU - - first: - Facebook: Win64 - second: - enabled: 0 - settings: - CPU: AnyCPU - - first: - Standalone: Linux64 - second: - enabled: 0 - settings: - CPU: AnyCPU - - first: - Standalone: OSXUniversal - second: - enabled: 0 - settings: - CPU: AnyCPU - - first: - Standalone: Win - second: - enabled: 0 - settings: - CPU: AnyCPU - - first: - Standalone: Win64 - second: - enabled: 0 - settings: - CPU: AnyCPU - userData: - assetBundleName: - assetBundleVariant: diff --git a/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libwvrxrplugin.so b/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libwvrxrplugin.so deleted file mode 100644 index b6427a07..00000000 --- a/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libwvrxrplugin.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:883cdbb0a2af0f60372fa97839aa82d70e7c4803a5ef9cc4ff7f2b5335b8281f -size 136740 diff --git a/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libwvrxrplugin.so.meta b/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libwvrxrplugin.so.meta deleted file mode 100644 index 4fd3cef2..00000000 --- a/com.htc.upm.wave.xrsdk/Runtime/Android/armeabi-v7a/libwvrxrplugin.so.meta +++ /dev/null @@ -1,70 +0,0 @@ -fileFormatVersion: 2 -guid: a4b47e18db2a8f745955f30e2fb0e27c -PluginImporter: - externalObjects: {} - serializedVersion: 2 - iconMap: {} - executionOrder: {} - defineConstraints: [] - isPreloaded: 0 - isOverridable: 1 - isExplicitlyReferenced: 0 - validateReferences: 1 - platformData: - - first: - : Any - second: - enabled: 0 - settings: - Exclude Android: 1 - Exclude Editor: 1 - Exclude Linux64: 1 - Exclude OSXUniversal: 1 - Exclude Win: 1 - Exclude Win64: 1 - - first: - Android: Android - second: - enabled: 0 - settings: - CPU: ARMv7 - - first: - Any: - second: - enabled: 0 - settings: {} - - first: - Editor: Editor - second: - enabled: 0 - settings: - CPU: AnyCPU - DefaultValueInitialized: true - OS: AnyOS - - first: - Standalone: Linux64 - second: - enabled: 0 - settings: - CPU: None - - first: - Standalone: OSXUniversal - second: - enabled: 0 - settings: - CPU: None - - first: - Standalone: Win - second: - enabled: 0 - settings: - CPU: None - - first: - Standalone: Win64 - second: - enabled: 0 - settings: - CPU: None - userData: - assetBundleName: - assetBundleVariant: diff --git a/com.htc.upm.wave.xrsdk/Runtime/Android/vr.client.abi.aar b/com.htc.upm.wave.xrsdk/Runtime/Android/vr.client.abi.aar index 8b81a97f..2b313fd1 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/Android/vr.client.abi.aar +++ b/com.htc.upm.wave.xrsdk/Runtime/Android/vr.client.abi.aar @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cf4b18746cbb11fad352ef3763a499910e7855e3ae4e6825e1f09847610ae93b -size 3824 +oid sha256:4f6cbb42fdb5bb38882f6f21c5d8ea14140e5bd09f91fe1633e1e12333f4bc46 +size 3827 diff --git a/com.htc.upm.wave.xrsdk/Runtime/Android/wvr.common.utils.aar b/com.htc.upm.wave.xrsdk/Runtime/Android/wvr.common.utils.aar index da05b6c2..0d90fd3f 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/Android/wvr.common.utils.aar +++ b/com.htc.upm.wave.xrsdk/Runtime/Android/wvr.common.utils.aar @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d3920b6682a5b2dc19015e67ab9bf888c26f4e58c213e1efad7f5e75043a27af -size 150707 +oid sha256:431e9ad2df8bf63e46257b838aae870674e3f2b9ae66bb9f3f928cafc345d81d +size 151111 diff --git a/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_client.aar b/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_client.aar index 78f89726..8c228751 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_client.aar +++ b/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_client.aar @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8c0a2c2bcdd6d602296cf32b5f73f38f54c5d014dff09f471025f0b1f908cc4c -size 19324908 +oid sha256:fbb0476dd115a175600a14a14f8501343a5e5fd7ea05f4784f3a668e151aafb0 +size 12766524 diff --git a/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_ime_client.aar b/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_ime_client.aar index 5125e5d3..4ed1c6e5 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_ime_client.aar +++ b/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_ime_client.aar @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dc705034b4e223d219d4972d839071f856843bb1277a0416ddc6487ac05a8877 +oid sha256:e25fe63d4137db8c7b5da298628a46fa748cd0fe79e0060832b20901dc8d9102 size 52802 diff --git a/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_permission_client.aar b/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_permission_client.aar index 443d1932..a60a35a2 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_permission_client.aar +++ b/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_permission_client.aar @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4a58614425b4c0790b56d33c5e603564ad6324cad44137aed8ff15ad0e76334e -size 126931 +oid sha256:2fc828d9f1c1225b708cc9b65a87b9ee20df0d5abd22c69008f4aa7c594bee2b +size 126925 diff --git a/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_unity_plugin_2017.aar b/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_unity_plugin_2017.aar index 67fcedb1..850d9958 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_unity_plugin_2017.aar +++ b/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_unity_plugin_2017.aar @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:db50e423dd094a078b9c1aaf000d9d5896916fd6c0f93e89a0032927898c52ad -size 232669 +oid sha256:74dc3d86cfd599991a984bbf7a2b7faa68a0a4f7e9bdf6cc2c20784e069b2855 +size 140014 diff --git a/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_unity_plugin_2022.aar b/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_unity_plugin_2022.aar index c24a54fa..534fccc2 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_unity_plugin_2022.aar +++ b/com.htc.upm.wave.xrsdk/Runtime/Android/wvr_unity_plugin_2022.aar @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:45e6b55d1dfea35355a4a6b7ab1ea6c89dd8db2f30263d9df7ead8a597053e6f -size 232666 +oid sha256:f36d58ce784865e108d4b5cf575d6c159a4df3f78afe49a29649819e40244001 +size 140011 diff --git a/com.htc.upm.wave.xrsdk/Runtime/DirectPreview/Editor/CheckDirectPreviewOptions.cs b/com.htc.upm.wave.xrsdk/Runtime/DirectPreview/Editor/CheckDirectPreviewOptions.cs index 7b1c8e59..c957848a 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/DirectPreview/Editor/CheckDirectPreviewOptions.cs +++ b/com.htc.upm.wave.xrsdk/Runtime/DirectPreview/Editor/CheckDirectPreviewOptions.cs @@ -1,4 +1,3 @@ - // "WaveVR SDK // © 2017 HTC Corporation. All Rights Reserved. // @@ -62,8 +61,9 @@ public class DirectPreviewControlPanel : EditorWindow private int[] TargetDeviceValue = { 0, 1 }; private int selectedTargetDeviceValue = 1; private int prevTargetDeviceValue = 1; - +#pragma warning disable private bool configFoldout = true; +#pragma warning enable private static readonly string PREF_IS_ADB_EXIST = "IsAdbExist"; diff --git a/com.htc.upm.wave.xrsdk/Runtime/DirectPreview/Scripts/DirectPreviewCore.cs b/com.htc.upm.wave.xrsdk/Runtime/DirectPreview/Scripts/DirectPreviewCore.cs index 0bff3d9c..6dbf8265 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/DirectPreview/Scripts/DirectPreviewCore.cs +++ b/com.htc.upm.wave.xrsdk/Runtime/DirectPreview/Scripts/DirectPreviewCore.cs @@ -1,3 +1,4 @@ +using AOT; using System; using System.Collections; using System.Collections.Generic; @@ -30,10 +31,19 @@ public enum SIM_ConnectType SIM_ConnectType_Wifi = 1, } - public delegate void printcallback(string z); + public delegate void LogCallbackDelegate(string z); [DllImport("wvr_plugins_directpreview", EntryPoint = "WVR_SetPrintCallback")] - public static extern void WVR_SetPrintCallback_S(printcallback callback); + public static extern void WVR_SetPrintCallback_S(System.IntPtr callback); + + private static IntPtr GetFunctionPointerForDelegate(Delegate del) + { + return System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(del); + } + + private static readonly LogCallbackDelegate handle = new LogCallbackDelegate(NativeLogCallback); + private static readonly IntPtr handlePtr = GetFunctionPointerForDelegate(handle); + public static void PrintLog(string msg) { @@ -54,12 +64,14 @@ public static void PrintLog(string msg) //private static string TAG = "DirectPreviewCore:"; public static bool EnableDirectPreview = false; - private static Camera camera = null; - private static string LOG_TAG = "DirectPreviewCore"; + private static string TAG = "DirectPreviewCore"; +#pragma warning disable + private static Camera camera = null; + bool enablePreview = false; static string wifi_ip_tmp; +#pragma warning enable static string wifi_ip_state = ""; - bool enablePreview = false; static bool saveLog = false; static bool saveImage = false; static int connectType = 0; // USB @@ -116,6 +128,8 @@ static void OnEnterPlayModeMethod(EnterPlayModeOptions options) EnableDirectPreview = EditorPrefs.GetBool("Wave/DirectPreview/EnableDirectPreview", false); PrintDebug("OnEnterPlayModeMethod: " + EnableDirectPreview); + EditorApplication.playModeStateChanged += OnPlayModeStateChanged; + if (EnableDirectPreview) { PrintDebug("Enable direct preview and add delegate to sceneLoaded"); @@ -128,6 +142,17 @@ static void OnEnterPlayModeMethod(EnterPlayModeOptions options) { EnableDP(false, (SIM_ConnectType)SIM_ConnectType.SIM_ConnectType_USB, IntPtr.Zero, false, false, false); PrintDebug("Enable Direct Preview: " + false); + IsDPInited = false; + } + } + + private static void OnPlayModeStateChanged(PlayModeStateChange state) + { + if (state == PlayModeStateChange.ExitingPlayMode) + { + EditorApplication.playModeStateChanged -= OnPlayModeStateChanged; + WVR_SetPrintCallback_S(System.IntPtr.Zero); + IsDPInited = false; } } @@ -146,6 +171,8 @@ public static bool dpServerProcessChecker() return flag; } + public static bool IsDPInited { get; set; } = false; + public static void DP_Init() { EnableDirectPreview = EditorPrefs.GetBool("Wave/DirectPreview/EnableDirectPreview", false); @@ -161,7 +188,7 @@ public static void DP_Init() if (EnableDirectPreview) { PrintDebug("Register direct preview print callback"); - WVR_SetPrintCallback_S(PrintLog); + WVR_SetPrintCallback_S(handlePtr); //if (connectType == 1) //{ @@ -173,6 +200,7 @@ public static void DP_Init() EnableDP(true, (SIM_ConnectType)connectType, ptrIPaddr, tPreview, saveLog, saveImage); PrintDebug("Enable Direct Preview: " + true + ", connection: " + connectType + ", IP: " + ipaddr + ", preview: " + tPreview + ", log: " + saveLog + ", image: " + saveImage); + IsDPInited = true; } } @@ -323,12 +351,18 @@ public static void DP_Init() private static void PrintError(string msg) { - UnityEngine.Debug.LogError(LOG_TAG + ": " + msg); + UnityEngine.Debug.LogError(TAG + ": " + msg); } private static void PrintDebug(string msg) { - UnityEngine.Debug.Log(LOG_TAG + ": " + msg); + UnityEngine.Debug.Log(TAG + ": " + msg); + } + + [MonoPInvokeCallback(typeof(LogCallbackDelegate))] + private static void NativeLogCallback(string msg) + { + UnityEngine.Debug.Log("DirectPreviewCore(NCB): " + msg); } public class DirectPreviewRendererHooker : MonoBehaviour @@ -358,6 +392,8 @@ static bool WantsToQuit() UnityEngine.Debug.Log("Editor prevented from quitting. --------"); SceneManager.sceneLoaded -= OnSceneLoaded; + IsDPInited = false; + return true; } } diff --git a/com.htc.upm.wave.xrsdk/Runtime/DirectPreview/Scripts/DirectPreviewRender.cs b/com.htc.upm.wave.xrsdk/Runtime/DirectPreview/Scripts/DirectPreviewRender.cs index 8ccda4d2..999bc166 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/DirectPreview/Scripts/DirectPreviewRender.cs +++ b/com.htc.upm.wave.xrsdk/Runtime/DirectPreview/Scripts/DirectPreviewRender.cs @@ -1,107 +1,42 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; -using UnityEditor; using UnityEngine; +using UnityEngine.Profiling; using UnityEngine.Rendering; +using UnityEngine.XR; #if UNITY_EDITOR && UNITY_ANDROID namespace Wave.XR.DirectPreview { public class DirectPreviewRender : MonoBehaviour { - private static string TAG = "DirectPreviewRender:"; - [DllImport("wvr_plugins_directpreview", EntryPoint = "WVR_SetRenderImageHandles")] - public static extern bool WVR_SetRenderImageHandles(IntPtr[] ttPtr); + public static extern bool WVR_SetRenderImageHandles3(IntPtr ttPtr); + + private class RTTask : RenderThreadTask + { + public RTTask(Receiver render) : base(render) {} - [DllImport("wvr_plugins_directpreview", EntryPoint = "WVR_SetRenderImageHandles2")] - public static extern bool WVR_SetRenderImageHandles2(); + public void IssueEvent(System.IntPtr l, System.IntPtr r) + { + var rtts = Queue.Obtain(); + rtts.left = l; + rtts.right = r; + Queue.Enqueue(rtts); + IssueEvent(); + } + } + + RTTask renderThreadTask; - static bool leftCall = false; - static bool rightCall = false; static bool isLeftReady = false; static bool isRightReady = false; - static RenderTexture rt_L; - static RenderTexture rt_R; - static IntPtr[] rt = new IntPtr[2]; static int mFPS = 60; static long lastUpdateTime = 0; - int frame = 0; - new Camera camera; - //[DllImport("wvr_plugins_directpreview", EntryPoint = "WVR_Quit_S")] - //public static extern void WVR_Quit_S(); - - //public delegate void debugcallback(int l, string z); - //[DllImport("wvrunityxr", EntryPoint = "SetPrintCallback")] - //public static extern void RegisterDebugCallback(debugcallback callback); - - //[DllImport("wvrunityxr", EntryPoint = "GetFirstEyePtr")] - //public static extern IntPtr GetFirstEyePtr(); - - //[DllImport("wvrunityxr", EntryPoint = "GetSecondEyePtr")] - //public static extern IntPtr GetSecondEyePtr(); - - //public static void PrintLog(int l, string msg) - //{ - // switch (l) - // { - // case 0: // error - // UnityEngine.Debug.LogError(msg); - // break; - // case 1: // assert - // UnityEngine.Debug.LogAssertion(msg); - // break; - // case 2: // warning - // UnityEngine.Debug.LogWarning(msg); - // break; - // case 3: // log - // UnityEngine.Debug.Log(msg); - // break; - // case 4: // exception - // UnityEngine.Debug.LogError(msg); - // break; - // case 5: - // UnityEngine.Debug.Log(msg); - // break; - // default: - // UnityEngine.Debug.Log(msg); - // break; - // } - - //} - - //public enum SIM_InitError - //{ - // SIM_InitError_None = 0, - // SIM_InitError_WSAStartUp_Failed = 1, - // SIM_InitError_Already_Inited = 2, - // SIM_InitError_Device_Not_Found = 3, - // SIM_InitError_Can_Not_Connect_Server = 4, - // SIM_InitError_IPAddress_Null = 5, - //} - - //public enum SIM_ConnectType - //{ - // SIM_ConnectType_USB = 0, - // SIM_ConnectType_Wifi = 1, - //} - - //[DllImport("wvr_plugins_directpreview", EntryPoint = "WVR_Init_S")] - //public static extern SIM_InitError WVR_Init_S(int a, System.IntPtr ip, bool enablePreview, bool saveLogToFile, bool saveImage); - - - //bool enablePreview = false; - //static bool saveLog = false; - //static bool saveImage = false; - //static int connectType = 0; // USB - - - //public delegate void printcallback(string z); - - //[DllImport("wvr_plugins_directpreview", EntryPoint = "WVR_SetPrintCallback")] - //public static extern void WVR_SetPrintCallback_S(printcallback callback); + + Camera cam; + public static long getCurrentTimeMillis() { @@ -109,20 +44,28 @@ public static long getCurrentTimeMillis() return (long)((DateTime.UtcNow - Jan1st1970).TotalMilliseconds); } - private static void PrintError(string msg) - { - Debug.LogError(TAG + ": " + msg); - } - - private static void PrintDebug(string msg) - { - Debug.Log(TAG + ": " + msg); - } Material mat; - - private void Start() + List subsystems = new List(); + XRDisplaySubsystem displaySubsystem; + XRDisplaySubsystem GetDisplaySubsystem() + { + SubsystemManager.GetInstances(subsystems); + if (subsystems != null && subsystems.Count > 0) + { + for (int i = 0; i < subsystems.Count; i++) + { + if (subsystems[i].SubsystemDescriptor.id == Constants.k_DisplaySubsystemId) + { + return subsystems[i]; + } + } + } + return null; + } + + private void Start() { - camera = GetComponent(); + cam = GetComponent(); mat = new Material(Shader.Find("Unlit/DP2BlitShader")); lastUpdateTime = 0; @@ -138,110 +81,269 @@ private void Start() } UnityEngine.Debug.LogWarning("mFPS is changed to " + mFPS); } - RenderPipelineManager.endFrameRendering += OnEndFrameRendering; + + RenderPipelineManager.endCameraRendering += OnEndCameraRendering; + + ptrSize = Marshal.SizeOf(typeof(System.IntPtr)); + // Create Marshal memory for a IntPtr[2] array + ptrArray = Marshal.AllocHGlobal(ptrSize * 2); + + renderThreadTask = new RTTask(RenderThreadReceiver); + } + + class RTTextures : Message + { + public IntPtr left; + public IntPtr right; + } + + int ptrSize; + IntPtr ptrArray; + + void RenderThreadReceiver(PreAllocatedQueue queue) + { + var msg = queue.Dequeue(); + if (msg == null) return; + var rts = (RTTextures)msg; + if (rts != null) + { + // Assign IntPtr to ptrArray[0] + Marshal.WriteIntPtr(ptrArray, 0, rts.left); + // Assign IntPtr to ptrArray[1] + Marshal.WriteIntPtr(ptrArray, ptrSize, rts.right); + // Call native function + WVR_SetRenderImageHandles3(ptrArray); + } } - void OnEndFrameRendering(ScriptableRenderContext context, Camera[] cameras) + // Use Triple Buffer + const int BufferCount = 3; + int width = -1, height = -1; + int bufferId = -1; + + class FrameBuffer { - // Put the code that you want to execute after the camera renders here - // If you are using URP or HDRP, Unity calls this method automatically - // If you are writing a custom SRP, you must call RenderPipeline.EndCameraRendering - long currentTime = getCurrentTimeMillis(); - if (currentTime - lastUpdateTime >= (1000 / mFPS)) + public readonly RenderTexture[] rt = new RenderTexture[2]; + public readonly System.IntPtr[] ptr = new IntPtr[2]; + + static int id = 0; + + public RenderTexture Left { get { return rt[0]; } } + public RenderTexture Right { get { return rt[1]; } } + public System.IntPtr LeftPtr { get { return ptr[0]; } } + public System.IntPtr RightPtr { get { return ptr[1]; } } + + public void Create(int w, int h) { - if (WVR_SetRenderImageHandles2()) + for (int e = 0; e < 2; e++) { - //Debug.LogWarning("callback successfully"); + rt[e] = new RenderTexture(w, h, 0, RenderTextureFormat.ARGB32); + rt[e].name = "DP2_RT_" + (e == 0 ? "L" : "R") + "_" + id; + id = ++id % 60; + rt[e].Create(); + ptr[e] = rt[e].GetNativeTexturePtr(); } - else + } + + public bool NeedCreate(int w, int h) + { + return rt[0] == null || rt[0].width != w || rt[0].height != h; + } + + public void Destroy() + { + for (int e = 0; e < 2; e++) { - //UnityEngine.Debug.LogWarning("WVR_SetRenderImageHandles2 fail"); + if (rt[e] != null) + rt[e].Release(); + rt[e] = null; + ptr[e] = System.IntPtr.Zero; } } } - void OnDestroy() + readonly FrameBuffer[] fbs = new FrameBuffer[BufferCount]; + + void CheckRenderTarget(int width, int height) { - RenderPipelineManager.endFrameRendering -= OnEndFrameRendering; + bool needCreate = this.width != width || this.height != height; + needCreate |= fbs[0] == null || fbs[0].NeedCreate(width, height); + + if (!needCreate) return; + + this.width = width; + this.height = height; + + for (int bId = 0; bId < BufferCount; bId++) + { + if (fbs[bId] == null) + fbs[bId] = new FrameBuffer(); + fbs[bId].Destroy(); + fbs[bId].Create(width, height); + } } - private void Update() + // This only work for universal render pipeline + void OnEndCameraRendering(ScriptableRenderContext context, Camera camera) { - frame++; - //PrintDebug("update: " + frame); + if (!DirectPreviewCore.IsDPInited) return; + + if (camera != cam) return; + displaySubsystem = GetDisplaySubsystem(); + if (displaySubsystem == null) return; + + var currentTime = getCurrentTimeMillis(); + bool doCopy = (currentTime - lastUpdateTime) >= (1000 / mFPS); + if (!doCopy) return; + + + int pc = displaySubsystem.GetRenderPassCount(); + if (pc == 0) return; + + displaySubsystem.GetRenderPass(0, out var pass); + int w = (int)(pass.renderTargetDesc.width / XRSettings.eyeTextureResolutionScale); + int h = (int)(pass.renderTargetDesc.height / XRSettings.eyeTextureResolutionScale); + + if (w <= 0 || h <= 0) return; + + // New frame will render on another buffer + bufferId = ++bufferId % BufferCount; + + CheckRenderTarget(w, h); + + lastUpdateTime = currentTime; + + bool isSinglePass = displaySubsystem.GetRenderPassCount() == 1; + bool isMultiPass = displaySubsystem.GetRenderPassCount() == 2; + if (isSinglePass) + { + var src = pass.renderTarget; + var cmdBuf = new CommandBuffer(); + cmdBuf.name = "RT_to_DP2"; + cmdBuf.Blit(src, fbs[bufferId].Left, 0, 0); + cmdBuf.Blit(src, fbs[bufferId].Right, 1, 0); + context.ExecuteCommandBuffer(cmdBuf); +#if UNITY_2020_3_OR_NEWER + if (Time.frameCount > mFPS) +#endif + context.Submit(); + if (renderThreadTask != null) + renderThreadTask.IssueEvent(fbs[bufferId].LeftPtr, fbs[bufferId].RightPtr); + } + + if (isMultiPass) + { + displaySubsystem.GetRenderPass(1, out var passR); + var srcL = pass.renderTarget; + var srcR = passR.renderTarget; + + var cmdBuf = new CommandBuffer(); + cmdBuf.name = "RT_to_DP2"; + cmdBuf.Blit(srcL, fbs[bufferId].Left); + cmdBuf.Blit(srcR, fbs[bufferId].Right); + context.ExecuteCommandBuffer(cmdBuf); +#if UNITY_2020_3_OR_NEWER + if (Time.frameCount > mFPS) +#endif + context.Submit(); + if (renderThreadTask != null) + renderThreadTask.IssueEvent(fbs[bufferId].LeftPtr, fbs[bufferId].RightPtr); + } } - //public void OnPostRender(Camera cam) - //{ - // Debug.Log(" native ptr: " + cam.activeTexture.GetNativeTexturePtr()); - //} + void OnDestroy() + { + RenderPipelineManager.endCameraRendering -= OnEndCameraRendering; - readonly RenderTexture[] temp = new RenderTexture[2]; + for (int bId = 0; bId < BufferCount; bId++) + { + if (fbs == null) continue; + fbs[bId].Destroy(); + fbs[bId] = null; + } - void OnRenderImage(RenderTexture src, RenderTexture dest) + // Free Marshal memory + if (ptrArray != IntPtr.Zero); + Marshal.FreeHGlobal(ptrArray); + ptrArray = IntPtr.Zero; + } + + bool ShouldCopy(long currentTime) { - //Debug.Log("vrUsage=" + src.vrUsage + ", width=" + src.width + ", height=" + src.height + ", name=" + src.name + ", frame=" + frame + ", eye=" + camera.stereoActiveEye); - //Debug.Log("src native ptr: " + src.GetNativeTexturePtr() + ", eye=" + camera.stereoActiveEye); + return (currentTime - lastUpdateTime) >= (1000 / (mFPS * 1.05f)); + } + + bool mpIsRendered = false; + int frameCount = 0; + // This only work for standard render pipeline + void OnRenderImage(RenderTexture src, RenderTexture dest) + { + // Copy to editor display output first Graphics.Blit(src, dest); - //var height = src.height; - //if ((height % 2) != 0) - //{ - // UnityEngine.Debug.LogWarning("RenderTexture height is odd, skip."); - // return; - //} + if (!DirectPreviewCore.IsDPInited) return; + + // Do DP2 copy + var currentTime = getCurrentTimeMillis(); + bool doCopy = ShouldCopy(currentTime); + if (!doCopy) return; + + //if (Camera.current != cam) return; // always false + displaySubsystem = GetDisplaySubsystem(); + if (displaySubsystem == null) return; - long currentTime = getCurrentTimeMillis(); - if (currentTime - lastUpdateTime >= (1000 / mFPS)) + displaySubsystem.GetRenderPass(0, out var pass); + // Not allow to change the resolution scale to DP + // TODO: should not allow change renderTargetDesc.width/height in wvrunityxr.dll + int w = (int)(pass.renderTargetDesc.width / XRSettings.eyeTextureResolutionScale); + int h = (int)(pass.renderTargetDesc.height / XRSettings.eyeTextureResolutionScale); + CheckRenderTarget(w, h); + + if (frameCount != Time.frameCount) { - if (!isLeftReady && camera.stereoActiveEye == Camera.MonoOrStereoscopicEye.Left) + frameCount = Time.frameCount; + // New frame will render on another buffer + bufferId = ++bufferId % BufferCount; + + isLeftReady = false; + isRightReady = false; + mpIsRendered = false; + } + + bool isSinglePass = displaySubsystem.GetRenderPassCount() == 1; + if (isSinglePass) + { + Graphics.Blit(src, fbs[bufferId].Left, new Vector2(1, -1), new Vector2(0, 1), 0, 0); + Graphics.Blit(src, fbs[bufferId].Right, new Vector2(1, -1), new Vector2(0, 1), 1, 0); + + lastUpdateTime = currentTime; + + if (renderThreadTask != null) + renderThreadTask.IssueEvent(fbs[bufferId].LeftPtr, fbs[bufferId].RightPtr); + } + else + { + if (!isLeftReady && cam.stereoActiveEye == Camera.MonoOrStereoscopicEye.Left) { - var desc = src.descriptor; - desc.msaaSamples = 1; - desc.depthBufferBits = 0; - desc.useMipMap = false; - temp[0] = RenderTexture.GetTemporary(desc); - Graphics.Blit(src, temp[0], mat); + Graphics.Blit(src, fbs[bufferId].Left, new Vector2(1, -1), new Vector2(0, 1)); isLeftReady = true; } - if (isLeftReady && !isRightReady && camera.stereoActiveEye == Camera.MonoOrStereoscopicEye.Right) + if (isLeftReady && !isRightReady && cam.stereoActiveEye == Camera.MonoOrStereoscopicEye.Right) { - var desc = src.descriptor; - desc.msaaSamples = 1; - desc.depthBufferBits = 0; - desc.useMipMap = false; - temp[1] = RenderTexture.GetTemporary(desc); - Graphics.Blit(src, temp[1], mat); + Graphics.Blit(src, fbs[bufferId].Right, new Vector2(1, -1), new Vector2(0, 1)); isRightReady = true; } - if (isLeftReady && isRightReady) + if (isLeftReady && isRightReady && !mpIsRendered) { - rt[0] = temp[0].GetNativeTexturePtr(); - rt[1] = temp[1].GetNativeTexturePtr(); + mpIsRendered = true; lastUpdateTime = currentTime; - if (WVR_SetRenderImageHandles(rt)) - { - //Debug.LogWarning("callback successfully"); - } - else - { - //UnityEngine.Debug.LogWarning("WVR_SetRenderImageHandles fail"); - } - isLeftReady = false; - isRightReady = false; - RenderTexture.ReleaseTemporary(temp[0]); - RenderTexture.ReleaseTemporary(temp[1]); - temp[0] = null; - temp[1] = null; + if (renderThreadTask != null) + renderThreadTask.IssueEvent(fbs[bufferId].LeftPtr, fbs[bufferId].RightPtr); } } - - if (isLeftReady && isRightReady) - { - } } } } diff --git a/com.htc.upm.wave.xrsdk/Runtime/GitIgnored/Resources.meta b/com.htc.upm.wave.xrsdk/Runtime/GitIgnored/Resources.meta index 89c1205b..c6b5993c 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/GitIgnored/Resources.meta +++ b/com.htc.upm.wave.xrsdk/Runtime/GitIgnored/Resources.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d1908c0e41a053c41aa5ca9348cfdd38 +guid: 555243a81f70f8f4abf8a4cad1e7843e folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/com.htc.upm.wave.xrsdk/Runtime/GitIgnored/Resources/commit_info.json b/com.htc.upm.wave.xrsdk/Runtime/GitIgnored/Resources/commit_info.json index b3400843..8b63ca7e 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/GitIgnored/Resources/commit_info.json +++ b/com.htc.upm.wave.xrsdk/Runtime/GitIgnored/Resources/commit_info.json @@ -1,10 +1,10 @@ { - "commit": "05ed1c5395612581ad2afc7edf4a3a16bd4c50c5", + "commit": "3ab3e2c68504d3a4eb3e4ef62b3e21f7c6391c21", - "abbreviated_commit": "05ed1c539", + "abbreviated_commit": "3ab3e2c68", - "refs": "HEAD -> master, origin/master, origin/HEAD" + "refs": "HEAD -> master, tag: 5.5.0-u14, origin/master, origin/HEAD" } \ No newline at end of file diff --git a/com.htc.upm.wave.xrsdk/Runtime/GitIgnored/Resources/commit_info.json.meta b/com.htc.upm.wave.xrsdk/Runtime/GitIgnored/Resources/commit_info.json.meta index 44b03846..95c48232 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/GitIgnored/Resources/commit_info.json.meta +++ b/com.htc.upm.wave.xrsdk/Runtime/GitIgnored/Resources/commit_info.json.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 99ede02c2f3ec1d41ae5acea74e893b7 +guid: eeb51370050c5e147b57fc7585852717 TextScriptImporter: externalObjects: {} userData: diff --git a/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport.meta b/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport.meta new file mode 100644 index 00000000..1f195bd0 --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 67c21eceec8fcbf4bacaf70eddf6cc31 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/2.8.3.meta b/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/2.8.3.meta new file mode 100644 index 00000000..968c846f --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/2.8.3.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bdd983a9f9814f44b99db9ab7617af1d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/2.8.3/[Unity] Set Up MRTK2 For VIVE Wave.pdf b/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/2.8.3/[Unity] Set Up MRTK2 For VIVE Wave.pdf new file mode 100644 index 0000000000000000000000000000000000000000..689c0bdaeba77a0d24ff0990a3e6f2e7e25480b5 GIT binary patch literal 131 zcmWm5NfN>!5CFhCuiyiQeamkKm=UT}QbKa@_3Eilec^ld@#1Z*W9~xS`?@`7Za>?Z zw=$k$9$3Vs*yxqd2HN@EQjP&ajaU`vSX?4+5h2@x9?&OA;3HwFMhB`^B}dX3r(}Tt NWwU>fM{A^s>mB}`zufvq)-g`rm3p@Ecokk| z>lK&O--^$i)U8EthvXVoqs PG_8x^_RA9I3`YC`$tEUt literal 0 HcmV?d00001 diff --git a/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/3.0.0/[Unity] Set Up MRTK3 For VIVE Wave.pdf.meta b/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/3.0.0/[Unity] Set Up MRTK3 For VIVE Wave.pdf.meta new file mode 100644 index 00000000..0fd33825 --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/3.0.0/[Unity] Set Up MRTK3 For VIVE Wave.pdf.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8280a3703f3779b42a7e6468de158161 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/3.0.0/wave_xrsdk_mrtksupport.unitypackage b/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/3.0.0/wave_xrsdk_mrtksupport.unitypackage new file mode 100644 index 00000000..2d30d042 --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/3.0.0/wave_xrsdk_mrtksupport.unitypackage @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79aebed0c97d8fdba578cb5c431abb3d6d629e9d56c65e926ebcfb9f558ed51c +size 15334 diff --git a/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/3.0.0/wave_xrsdk_mrtksupport.unitypackage.meta b/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/3.0.0/wave_xrsdk_mrtksupport.unitypackage.meta new file mode 100644 index 00000000..604d5374 --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Runtime/MRTKSupport/3.0.0/wave_xrsdk_mrtksupport.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 01e253d4b9b641b47a671586b4ea9d52 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.wave.xrsdk/Runtime/RenderThreadTask.cs b/com.htc.upm.wave.xrsdk/Runtime/RenderThreadTask.cs index 5f22fb01..fe00323b 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/RenderThreadTask.cs +++ b/com.htc.upm.wave.xrsdk/Runtime/RenderThreadTask.cs @@ -1,6 +1,7 @@ using AOT; using System; using System.Collections.Generic; +using System.Runtime.InteropServices; using UnityEngine; using UnityEngine.Rendering; @@ -104,15 +105,19 @@ public Message Dequeue() // Run a lambda/delegate code in RenderThread public class RenderThreadTask { + // Only used for Editor + [DllImport("wvrunityxr", CallingConvention = CallingConvention.Cdecl)] + private extern static IntPtr SetRenderThreadSyncObjectEventFunc(IntPtr del); + + // Only used for Editor + [DllImport("wvrunityxr", CallingConvention = CallingConvention.Cdecl)] + private extern static IntPtr GetRenderThreadSyncObjectEventFunc(); + + // In Windows, Marshal.GetFunctionPointerForDelegate() will cause application hang private static IntPtr GetFunctionPointerForDelegate(Delegate del) { -#if UNITY_EDITOR && !UNITY_2021_3 - // Older version will hang after run script in render thread. - return IntPtr.Zero; -#else return System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(del); -#endif } public delegate void RenderEventDelegate(int e); @@ -146,32 +151,13 @@ public RenderThreadTask(Receiver render) void IssuePluginEvent(IntPtr callback, int eventID) { -#if UNITY_EDITOR && !UNITY_2021_3 - // Older version will hang after run script in render thread. - if (Application.isEditor) - { - receiver(queue); - return; - } -#endif - -#if UNITY_ANDROID // Older version will hang after run script in render thread. GL.IssuePluginEvent(callback, eventID); return; -#else - receiver(queue); - return; -#endif } void IssuePluginEvent(CommandBuffer cmdBuf, IntPtr callback, int eventID) { -#if UNITY_EDITOR && !UNITY_2021_3 - if (Application.isEditor) - throw new NotImplementedException("Should not use this function in Windows"); -#endif - cmdBuf.IssuePluginEvent(callback, eventID); return; } @@ -179,14 +165,26 @@ void IssuePluginEvent(CommandBuffer cmdBuf, IntPtr callback, int eventID) // Run in GameThread public void IssueEvent() { - // Let the render thread run the RunSyncObjectInRenderThread(id) - IssuePluginEvent(handlePtr, id); +#if UNITY_EDITOR && !UNITY_2021_3_OR_NEWER + SetRenderThreadSyncObjectEventFunc(handlePtr); + if (Application.isEditor) + IssuePluginEvent(GetRenderThreadSyncObjectEventFunc(), id); + else +#endif + // Let the render thread run the RunSyncObjectInRenderThread(id) + IssuePluginEvent(handlePtr, id); } public void IssueInCommandBuffer(CommandBuffer cmdBuf) { - // Let the render thread run the RunSyncObjectInRenderThread(id) - IssuePluginEvent(cmdBuf, handlePtr, id); +#if UNITY_EDITOR && !UNITY_2021_3_OR_NEWER + SetRenderThreadSyncObjectEventFunc(handlePtr); + if (Application.isEditor) + IssuePluginEvent(cmdBuf, GetRenderThreadSyncObjectEventFunc(), id); + else +#endif + // Let the render thread run the RunSyncObjectInRenderThread(id) + IssuePluginEvent(cmdBuf, handlePtr, id); } // Called by RunSyncObjectInRenderThread() diff --git a/com.htc.upm.wave.xrsdk/Runtime/WaveXRHand.cs b/com.htc.upm.wave.xrsdk/Runtime/WaveXRHand.cs index cee3a823..7627ace6 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/WaveXRHand.cs +++ b/com.htc.upm.wave.xrsdk/Runtime/WaveXRHand.cs @@ -31,7 +31,27 @@ public enum TrackingStatus : UInt32 AVAILABLE = 4, UNSUPPORT = 5, } - private static UInt32 Id(this TrackingStatus status) { return (UInt32)status; } + public enum HandMotion : UInt32 + { + None = 0,//WVR_HandPoseType.WVR_HandPoseType_Invalid, + Pinch = 1,//WVR_HandPoseType.WVR_HandPoseType_Pinch, + Hold = 2,//WVR_HandPoseType.WVR_HandPoseType_Hold, + } + public enum HandHoldRole : UInt32 + { + None = 0,//WVR_HandHoldRoleType.WVR_HandHoldRoleType_None, + Main = 1,//WVR_HandHoldRoleType.WVR_HandHoldRoleType_MainHold, + Side = 2,//WVR_HandHoldRoleType.WVR_HandHoldRoleType_SideHold, + } + public enum HandHoldType : UInt32 + { + None = 0,//WVR_HandHoldObjectType.WVR_HandHoldObjectType_None, + Gun = 1,//WVR_HandHoldObjectType.WVR_HandHoldObjectType_Gun, + OCSpray = 2,//WVR_HandHoldObjectType.WVR_HandHoldObjectType_OCSpray, + LongGun = 3,//WVR_HandHoldObjectType.WVR_HandHoldObjectType_LongGun, + Baton = 4,//WVR_HandHoldObjectType.WVR_HandHoldObjectType_Baton, + FlashLight = 5,//WVR_HandHoldObjectType.WVR_HandHoldObjectType_FlashLight, + } #region Wave XR Interface private const string kNaturalHandStatus = "NaturalHandStatus"; @@ -112,6 +132,26 @@ public static void ActivateElectronicHand(bool active) public const string kHandConfidenceRight = "HandConfidenceRight"; public const string kHandScaleLeftX = "HandScaleLeftX", kHandScaleLeftY = "HandScaleLeftY", kHandScaleLeftZ = "HandScaleLeftZ"; public const string kHandScaleRightX = "HandScaleRightX", kHandScaleRightY = "HandScaleRightY", kHandScaleRightZ = "HandScaleRightZ"; + public const string kWristLinearVelocityLeftX = "WristLinearVelocityLeftX", kWristLinearVelocityLeftY = "WristLinearVelocityLeftY", kWristLinearVelocityLeftZ = "WristLinearVelocityLeftZ"; + public const string kWristLinearVelocityRightX = "WristLinearVelocityRightX", kWristLinearVelocityRightY = "WristLinearVelocityRightY", kWristLinearVelocityRightZ = "WristLinearVelocityRightZ"; + public const string kWristAngularVelocityLeftX = "WristAngularVelocityLeftX", kWristAngularVelocityLeftY = "WristAngularVelocityLeftY", kWristAngularVelocityLeftZ = "WristAngularVelocityLeftZ"; + public const string kWristAngularVelocityRightX = "WristAngularVelocityRightX", kWristAngularVelocityRightY = "WristAngularVelocityRightY", kWristAngularVelocityRightZ = "WristAngularVelocityRightZ"; + public const string kHandMotionLeft = "HandMotionLeft"; + public const string kHandMotionRight = "HandMotionRight"; + public const string kHandRoleLeft = "HandRoleLeft"; + public const string kHandRoleRight = "HandRoleRight"; + public const string kHandObjectLeft = "HandObjectLeft"; + public const string kHandObjectRight = "HandObjectRight"; + public const string kHandOriginLeftX = "HandOriginLeftX", kHandOriginLeftY = "HandOriginLeftY", kHandOriginLeftZ = "HandOriginLeftZ"; + public const string kHandOriginRightX = "HandOriginRightX", kHandOriginRightY = "HandOriginRightY", kHandOriginRightZ = "HandOriginRightZ"; + public const string kHandDirectionLeftX = "HandDirectionLeftX", kHandDirectionLeftY = "HandDirectionLeftY", kHandDirectionLeftZ = "HandDirectionLeftZ"; + public const string kHandDirectionRightX = "HandDirectionRightX", kHandDirectionRightY = "HandDirectionRightY", kHandDirectionRightZ = "HandDirectionRightZ"; + public const string kHandStrengthLeft = "HandStrengthLeft"; + public const string kHandStrengthRight = "HandStrengthRight"; + public const string kHandPinchThreshold = "HandPinchThreshold"; + public const string kHandPinchOffThreshold = "HandPinchOffThreshold"; + public const string kHandIsPinchingLeft = "HandIsPinchingLeft"; + public const string kHandIsPinchingRight = "HandIsPinchingRight"; /// Right Tracker Characteristics public const InputDeviceCharacteristics kRightHandCharacteristics = ( @@ -185,14 +225,28 @@ public static bool IsHandDevice(InputDevice input, bool isLeft) return false; } - internal static List s_InputDevices = new List(); + internal static object inputDeviceLock = new object(); + internal static List s_UpdatedDevices = new List(); + internal static List s_InputDevices + { + get + { + lock (inputDeviceLock) + { + return s_UpdatedDevices; + } + } + } internal static int inputDeviceFrame = -1; private static void UpdateInputDevices() { if (inputDeviceFrame != Time.frameCount) { inputDeviceFrame = Time.frameCount; - InputDevices.GetDevices(s_InputDevices); + lock (inputDeviceLock) + { + InputDevices.GetDevices(s_UpdatedDevices); + } } } @@ -456,6 +510,9 @@ public static List GetFingerBones(bool isLeft, HandFinger finger) /// public static bool GetHandScale(bool isLeft, out Vector3 scale) { + scale = Vector3.one; + if (!IsAvailable()) { return false; } + float scale_x = 0, scale_y = 0, scale_z = 0; if (isLeft) { @@ -475,11 +532,7 @@ public static bool GetHandScale(bool isLeft, out Vector3 scale) return true; } - /// - /// Retrieves the wrist confidence which is a 0~1 float value where 1 means the most accurate. - /// - /// Left or right hand. - /// + [Obsolete("This function is deprecated. Please use bool GetHandConfidence() instead.")] public static float GetHandConfidence(bool isLeft) { float confidence = 0; @@ -489,5 +542,271 @@ public static float GetHandConfidence(bool isLeft) SettingsHelper.GetFloat(kHandConfidenceRight, ref confidence); return confidence; } + /// + /// Retrieves the wrist confidence which is a 0~1 float value where 1 means the most accurate. + /// + /// Left or right hand. + /// 0~1 float value where 1 means the most accurate. + /// True for the confidence is available. + public static bool GetHandConfidence(bool isLeft, out float confidence) + { + confidence = 0; + if (!IsAvailable()) { return false; } +#pragma warning disable + confidence = GetHandConfidence(isLeft); +#pragma warning enable + return true; + } + + /// + /// Retrieves the left/right wrist velocity. + /// + /// True for left hand. + /// Velocity in Vector3. + /// True for valid velocity. + public static bool GetWristLinearVelocity(bool isLeft, out Vector3 velocity) + { + velocity = Vector3.zero; + if (!IsAvailable()) { return false; } + + float velocity_x = 0, velocity_y = 0, velocity_z = 0; + if (isLeft) + { + SettingsHelper.GetFloat(kWristLinearVelocityLeftX, ref velocity_x); + SettingsHelper.GetFloat(kWristLinearVelocityLeftY, ref velocity_y); + SettingsHelper.GetFloat(kWristLinearVelocityLeftZ, ref velocity_z); + } + else + { + SettingsHelper.GetFloat(kWristLinearVelocityRightX, ref velocity_x); + SettingsHelper.GetFloat(kWristLinearVelocityRightY, ref velocity_y); + SettingsHelper.GetFloat(kWristLinearVelocityRightZ, ref velocity_z); + } + velocity.x = velocity_x; + velocity.y = velocity_y; + velocity.z = velocity_z; + return true; + } + /// + /// Retrieves the left/right wrist angular velocity. + /// + /// True for left hand. + /// Angular velocity in Vector3. + /// True for valid angular velocity. + public static bool GetWristAngularVelocity(bool isLeft, out Vector3 velocity) + { + velocity = Vector3.zero; + if (!IsAvailable()) { return false; } + + float velocity_x = 0, velocity_y = 0, velocity_z = 0; + if (isLeft) + { + SettingsHelper.GetFloat(kWristAngularVelocityLeftX, ref velocity_x); + SettingsHelper.GetFloat(kWristAngularVelocityLeftY, ref velocity_y); + SettingsHelper.GetFloat(kWristAngularVelocityLeftZ, ref velocity_z); + } + else + { + SettingsHelper.GetFloat(kWristAngularVelocityRightX, ref velocity_x); + SettingsHelper.GetFloat(kWristAngularVelocityRightY, ref velocity_y); + SettingsHelper.GetFloat(kWristAngularVelocityRightZ, ref velocity_z); + } + velocity.x = velocity_x; + velocity.y = velocity_y; + velocity.z = velocity_z; + return true; + } + /// + /// Retrieves current left/right hand motion. + /// + /// True for left hand. + /// None, Hold or Pinch. + /// True for valid motion. + public static bool GetHandMotion(bool isLeft, out HandMotion motion) + { + motion = HandMotion.None; + if (!IsAvailable()) { return false; } + + uint motionId = (uint)motion; + + if (isLeft) + SettingsHelper.GetInt(kHandMotionLeft, ref motionId); + else + SettingsHelper.GetInt(kHandMotionRight, ref motionId); + + if (motionId == 1) { motion = HandMotion.Pinch; } + if (motionId == 2) { motion = HandMotion.Hold; } + return true; + } + /// + /// Retrieves the role of left/right hand while holding. + /// + /// True for left hand. + /// Main hold or Side hold. + /// True for valid role. + public static bool GetHandHoldRole(bool isLeft, out HandHoldRole role) + { + role = HandHoldRole.None; + if (!IsAvailable()) { return false; } + + uint roleId = (uint)role; + + if (isLeft) + SettingsHelper.GetInt(kHandRoleLeft, ref roleId); + else + SettingsHelper.GetInt(kHandRoleRight, ref roleId); + + if (roleId == 1) { role = HandHoldRole.Main; } + if (roleId == 2) { role = HandHoldRole.Side; } + return true; + } + /// + /// Retrieves the type of left/right handheld object. + /// + /// True for left hand. + /// See HandHoldType. + /// True for valid type. + public static bool GetHandHoldType(bool isLeft, out HandHoldType type) + { + type = HandHoldType.None; + if (!IsAvailable()) { return false; } + + uint typeId = (uint)type; + + if (isLeft) + SettingsHelper.GetInt(kHandObjectLeft, ref typeId); + else + SettingsHelper.GetInt(kHandObjectRight, ref typeId); + + if (typeId == 1) { type = HandHoldType.Gun; } + if (typeId == 2) { type = HandHoldType.OCSpray; } + if (typeId == 3) { type = HandHoldType.LongGun; } + if (typeId == 4) { type = HandHoldType.Baton; } + if (typeId == 5) { type = HandHoldType.FlashLight; } + return true; + } + + /// + /// Retrieves the origin of left/right hand pinch. + /// + /// True for left hand. + /// World space origin in Vector3. + /// True for valid origin. + public static bool GetPinchOrigin(bool isLeft, out Vector3 origin) + { + origin = Vector3.zero; + if (!IsAvailable()) { return false; } + + float origin_x = 0, origin_y = 0, origin_z = 0; + if (isLeft) + { + SettingsHelper.GetFloat(kHandOriginLeftX, ref origin_x); + SettingsHelper.GetFloat(kHandOriginLeftY, ref origin_y); + SettingsHelper.GetFloat(kHandOriginLeftZ, ref origin_z); + } + else + { + SettingsHelper.GetFloat(kHandOriginRightX, ref origin_x); + SettingsHelper.GetFloat(kHandOriginRightY, ref origin_y); + SettingsHelper.GetFloat(kHandOriginRightZ, ref origin_z); + } + origin.x = origin_x; + origin.y = origin_y; + origin.z = origin_z; + return true; + } + /// + /// Retrieves the direction of left/right hand pinch. + /// + /// True for left hand. + /// World space direction in Vector3. + /// True for valid direction. + public static bool GetPinchDirection(bool isLeft, out Vector3 direction) + { + direction = Vector3.forward; + if (!IsAvailable()) { return false; } + + float direction_x = 0, direction_y = 0, direction_z = 0; + if (isLeft) + { + SettingsHelper.GetFloat(kHandDirectionLeftX, ref direction_x); + SettingsHelper.GetFloat(kHandDirectionLeftY, ref direction_y); + SettingsHelper.GetFloat(kHandDirectionLeftZ, ref direction_z); + } + else + { + SettingsHelper.GetFloat(kHandDirectionRightX, ref direction_x); + SettingsHelper.GetFloat(kHandDirectionRightY, ref direction_y); + SettingsHelper.GetFloat(kHandDirectionRightZ, ref direction_z); + } + direction.x = direction_x; + direction.y = direction_y; + direction.z = direction_z; + return true; + } + /// + /// Retrieves the strength of left/right hand pinch. + /// + /// True for left hand. + /// The strength (0~1) where 1 means the thumb tip and index tip is touching. + /// + public static bool GetPinchStrength(bool isLeft, out float strength) + { + strength = 0; + if (!IsAvailable()) { return false; } + + if (isLeft) + SettingsHelper.GetFloat(kHandStrengthLeft, ref strength); + else + SettingsHelper.GetFloat(kHandStrengthRight, ref strength); + + return true; + } + /// + /// Retrieves the system default threshold always used to judge if a "selection" happens when the pinch strength value is greater than the threshold. + /// + /// Threshold in float 0~1. + /// True for valid threshold. + public static bool GetPinchThreshold(out float threshold) + { + threshold = 1; // The pinch strength will never > 1 + if (!IsAvailable()) { return false; } + + SettingsHelper.GetFloat(kHandPinchThreshold, ref threshold); + return true; + } + /// + /// Retrieves the system default threshold always used to judge if a "release" happens when a hand is pinching and the pinch strength value is less than the threshold. + /// Note that the Pinch Off Threshold should NOT be greater than the Pinch Threshold. + /// + /// Threshold in float 0~1. + /// True for valid threshold. + public static bool GetPinchOffThreshold(out float threshold) + { + threshold = 1; // The pinch strength will never > 1 + if (!IsAvailable()) { return false; } + + SettingsHelper.GetFloat(kHandPinchOffThreshold, ref threshold); + return true; + } + /// + /// Checks if a hand is pinching currently. + /// + /// True for left hand. + /// True for pinching. + public static bool IsHandPinching(bool isLeft) + { + bool isPinching = false; + + if (!GetHandMotion(isLeft, out HandMotion motion)) { return false; } + if (motion != HandMotion.Pinch) { return false; } + + if (isLeft) + SettingsHelper.GetBool(kHandIsPinchingLeft, ref isPinching); + else + SettingsHelper.GetBool(kHandIsPinchingRight, ref isPinching); + + return isPinching; + } } } \ No newline at end of file diff --git a/com.htc.upm.wave.xrsdk/Runtime/WaveXRLoader.cs b/com.htc.upm.wave.xrsdk/Runtime/WaveXRLoader.cs index 845245f8..b70df5a6 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/WaveXRLoader.cs +++ b/com.htc.upm.wave.xrsdk/Runtime/WaveXRLoader.cs @@ -69,17 +69,11 @@ public override bool Initialize() return false; } -#if UNITY_EDITOR - #if UNITY_2020_1_OR_NEWER - displaySubsystem.textureLayout = XRDisplaySubsystem.TextureLayout.SeparateTexture2Ds; - #else - displaySubsystem.singlePassRenderingDisabled = true; - #endif -#endif - -#if UNITY_EDITOR - if (!Application.isEditor) -#endif + if (Application.isEditor) + { + SettingsHelper.CheckSinglePass(); + } + else { FunctionsHelper.Process(this); SettingsHelper.Process(this); @@ -94,15 +88,8 @@ public override bool Start() StartSubsystem(); StartSubsystem(); StartSubsystem(); -#if UNITY_EDITOR - #if UNITY_2020_1_OR_NEWER - displaySubsystem.textureLayout = XRDisplaySubsystem.TextureLayout.SeparateTexture2Ds; - #else - displaySubsystem.singlePassRenderingDisabled = true; - #endif -#else + SettingsHelper.CheckSinglePass(); -#endif return true; } diff --git a/com.htc.upm.wave.xrsdk/Runtime/WaveXRRuntimeInitializeOnLoad.cs b/com.htc.upm.wave.xrsdk/Runtime/WaveXRRuntimeInitializeOnLoad.cs index 733bd122..ff992a88 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/WaveXRRuntimeInitializeOnLoad.cs +++ b/com.htc.upm.wave.xrsdk/Runtime/WaveXRRuntimeInitializeOnLoad.cs @@ -107,11 +107,12 @@ private void Start() } #if UNITY_EDITOR || UNITY_STANDALONE_WIN - if (!Application.isEditor || !Application.isMobilePlatform) + if (!Application.isEditor) #endif { renderThreadRenameTask = new RenderThreadTask(RenameRenderThreadReceiver); - renderThreadRenameTask.IssueEvent(); + if (renderThreadRenameTask != null) + renderThreadRenameTask.IssueEvent(); } } diff --git a/com.htc.upm.wave.xrsdk/Runtime/WaveXRSpectatorCameraHandle.cs b/com.htc.upm.wave.xrsdk/Runtime/WaveXRSpectatorCameraHandle.cs index f9f01bcf..6f882ff7 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/WaveXRSpectatorCameraHandle.cs +++ b/com.htc.upm.wave.xrsdk/Runtime/WaveXRSpectatorCameraHandle.cs @@ -184,7 +184,7 @@ private void CopyMainCameraParameters() spectatorCamera.clearFlags = main.clearFlags; spectatorCamera.cullingMask = hasOverrideCullingMask ? overrideCullingMask : main.cullingMask; // No matter what depth we set, the mono camera always run before stereo camera. See Profiler to check. - spectatorCamera.depth = Camera.main.depth += 99; + spectatorCamera.depth = Camera.main.depth + 99; spectatorCamera.depthTextureMode = main.depthTextureMode; spectatorCamera.useOcclusionCulling = main.useOcclusionCulling; spectatorCamera.stereoTargetEye = StereoTargetEyeMask.None; @@ -306,7 +306,7 @@ private void StatusCheck() else onSpectatorStop(); } - catch (System.Exception e) { } + catch (System.Exception) { } shouldRenderFrame = false; frameCount = 0; diff --git a/com.htc.upm.wave.xrsdk/Runtime/Windows/x64/wvrunityxr.dll b/com.htc.upm.wave.xrsdk/Runtime/Windows/x64/wvrunityxr.dll index b37c2e8c..436b2959 100644 --- a/com.htc.upm.wave.xrsdk/Runtime/Windows/x64/wvrunityxr.dll +++ b/com.htc.upm.wave.xrsdk/Runtime/Windows/x64/wvrunityxr.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a5b13214cdd7308c3644649e6b73672af3aed3afd42136263c0d6c2e02258e90 -size 777473 +oid sha256:747299028d6fc6b576814872a0e32070423398f9649d53d31069d66a012315d8 +size 856500 diff --git a/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Common/KeyboardMouseControl/Scripts/WaveXR_KeyboardMouseControl.cs b/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Common/KeyboardMouseControl/Scripts/WaveXR_KeyboardMouseControl.cs index 06a2c186..3cd3acb4 100644 --- a/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Common/KeyboardMouseControl/Scripts/WaveXR_KeyboardMouseControl.cs +++ b/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Common/KeyboardMouseControl/Scripts/WaveXR_KeyboardMouseControl.cs @@ -1,3 +1,4 @@ +using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SpatialTracking; @@ -13,6 +14,7 @@ namespace Wave.XR.Sample.KMC // Some code wre copied from Unity's Standard Assets package public class WaveXR_KeyboardMouseControl : MonoBehaviour { + private Camera targetCam; private WaveXR_PoseProviderForKMC poseProviderHMD = null; private WaveXR_PoseProviderForKMC poseProviderCtrlL = null; private WaveXR_PoseProviderForKMC poseProviderCtrlR = null; @@ -259,22 +261,40 @@ private void OnEnable() if (!Application.isEditor) enabled = false; - // Set as Camera.main's parent - kmcObjHMD = new GameObject("KMControlPosition"); - #if ENABLE_INPUT_SYSTEM kmcInput.Enable(); #endif } - private void Start() + private void Start() + { + StartCoroutine(FindMainCamera()); + } + + private IEnumerator FindMainCamera() { - poseCurrent = PoseHMD; - CurrentTarget = 0; - kmcObjCurrent = kmcObjHMD; + targetCam = null; + + while (Camera.main == null) + { + yield return null; + } - // Wait all object is ready - kmcObjHMD.transform.SetParent(Camera.main.transform.parent, false); + // For some special cases. For example, VIU's head. + yield return new WaitForSeconds(1); + + targetCam = Camera.main; + + // Set as Camera.main's parent + if (kmcObjHMD != null) + Destroy(kmcObjHMD); + kmcObjHMD = new GameObject("KMControlPosition"); + kmcObjCurrent = kmcObjHMD; + poseCurrent = PoseHMD; + CurrentTarget = 0; + + // Wait all object is ready + kmcObjHMD.transform.SetParent(Camera.main.transform.parent, false); AttachHMDTo(0); ApplyToAllTrackedPoseDriver(); KeyboardRotationInit(); @@ -363,17 +383,26 @@ void KeyboardRotation() private float xAxis = 0, yAxis = 0; private void Update() { + if (Camera.main != targetCam) + { + if (targetCam != null) + StartCoroutine(FindMainCamera()); + return; + } + if (targetCam == null) + return; + // Toggle cursor lock - if (Input.GetKeyUp(KeyCode.G)) + if (UnityEngine.Input.GetKeyUp(KeyCode.G)) Cursor.lockState = Cursor.lockState == CursorLockMode.None ? CursorLockMode.Locked : CursorLockMode.None; //Unlock cursor - if (Input.GetKeyUp(KeyCode.Escape)) + if (UnityEngine.Input.GetKeyUp(KeyCode.Escape)) Cursor.lockState = CursorLockMode.None; bool mouseHooked = Cursor.lockState != CursorLockMode.None; #if ENABLE_LEGACY_INPUT_MANAGER - xAxis = Input.GetAxis("Mouse X"); - yAxis = Input.GetAxis("Mouse Y"); + xAxis = UnityEngine.Input.GetAxis("Mouse X"); + yAxis = UnityEngine.Input.GetAxis("Mouse Y"); #elif ENABLE_INPUT_SYSTEM mouseAxis = kmcInput.mouse.axis.ReadValue() * axisProportion; xAxis = -(mouseAxisEx.x - mouseAxis.x); diff --git a/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Common/Scripts/WaveXR_Utils.cs b/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Common/Scripts/WaveXR_Utils.cs index e5f4e4d9..953aebc3 100644 --- a/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Common/Scripts/WaveXR_Utils.cs +++ b/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Common/Scripts/WaveXR_Utils.cs @@ -15,7 +15,7 @@ public static bool GetMouseButton(int button) { bool held = false; #if ENABLE_LEGACY_INPUT_MANAGER - held = Input.GetMouseButton(button); + held = UnityEngine.Input.GetMouseButton(button); #elif ENABLE_INPUT_SYSTEM if (button == 0) held = Mouse.current.leftButton.isPressed; @@ -28,7 +28,7 @@ public static bool GetMouseButtonDown(int button) { bool pressed = false; #if ENABLE_LEGACY_INPUT_MANAGER - pressed = Input.GetMouseButtonDown(button); + pressed = UnityEngine.Input.GetMouseButtonDown(button); #elif ENABLE_INPUT_SYSTEM if (button == 0) pressed = Mouse.current.leftButton.wasPressedThisFrame; @@ -41,7 +41,7 @@ public static bool GetMouseButtonUp(int button) { bool releases = false; #if ENABLE_LEGACY_INPUT_MANAGER - releases = Input.GetMouseButtonUp(button); + releases = UnityEngine.Input.GetMouseButtonUp(button); #elif ENABLE_INPUT_SYSTEM if (button == 0) releases = Mouse.current.leftButton.wasReleasedThisFrame; @@ -123,7 +123,7 @@ public static bool GetKey(KeyCode key) { bool held = false; #if ENABLE_LEGACY_INPUT_MANAGER - held = Input.GetKey(key); + held = UnityEngine.Input.GetKey(key); #elif ENABLE_INPUT_SYSTEM held = KeyboardKey(key).isPressed; #endif @@ -133,7 +133,7 @@ public static bool GetKeyDown(KeyCode key) { bool pressed = false; #if ENABLE_LEGACY_INPUT_MANAGER - pressed = Input.GetKeyDown(key); + pressed = UnityEngine.Input.GetKeyDown(key); #elif ENABLE_INPUT_SYSTEM pressed = KeyboardKey(key).wasPressedThisFrame; #endif @@ -143,7 +143,7 @@ public static bool GetKeyUp(KeyCode key) { bool releases = false; #if ENABLE_LEGACY_INPUT_MANAGER - releases = Input.GetKeyUp(key); + releases = UnityEngine.Input.GetKeyUp(key); #elif ENABLE_INPUT_SYSTEM releases = KeyboardKey(key).wasReleasedThisFrame; #endif @@ -154,7 +154,7 @@ public static bool GetKey(string keyName) { bool held = false; #if ENABLE_LEGACY_INPUT_MANAGER - held = Input.GetKey(keyName); + held = UnityEngine.Input.GetKey(keyName); #elif ENABLE_INPUT_SYSTEM held = KeyboardKey(keyName).isPressed; #endif @@ -164,7 +164,7 @@ public static bool GetKeyDown(string keyName) { bool pressed = false; #if ENABLE_LEGACY_INPUT_MANAGER - pressed = Input.GetKeyDown(keyName); + pressed = UnityEngine.Input.GetKeyDown(keyName); #elif ENABLE_INPUT_SYSTEM pressed = KeyboardKey(keyName).wasPressedThisFrame; #endif @@ -174,7 +174,7 @@ public static bool GetKeyUp(string keyName) { bool releases = false; #if ENABLE_LEGACY_INPUT_MANAGER - releases = Input.GetKeyUp(keyName); + releases = UnityEngine.Input.GetKeyUp(keyName); #elif ENABLE_INPUT_SYSTEM releases = KeyboardKey(keyName).wasReleasedThisFrame; #endif @@ -273,7 +273,7 @@ public static bool GetButton(string buttonName) { bool held = false; #if ENABLE_LEGACY_INPUT_MANAGER - held = Input.GetButton(buttonName); + held = UnityEngine.Input.GetButton(buttonName); #elif ENABLE_INPUT_SYSTEM if (s_JoystickButtons.TryGetValue(buttonName, out bool value)) { @@ -287,7 +287,7 @@ public static bool GetButtonDown(string buttonName) { bool pressed = false; #if ENABLE_LEGACY_INPUT_MANAGER - pressed = Input.GetButtonDown(buttonName); + pressed = UnityEngine.Input.GetButtonDown(buttonName); #elif ENABLE_INPUT_SYSTEM if (s_JoystickButtons.TryGetValue(buttonName, out bool value)) { @@ -303,7 +303,7 @@ public static bool GetButtonUp(string buttonName) { bool released = false; #if ENABLE_LEGACY_INPUT_MANAGER - released = Input.GetButtonUp(buttonName); + released = UnityEngine.Input.GetButtonUp(buttonName); #elif ENABLE_INPUT_SYSTEM if (s_JoystickButtons.TryGetValue(buttonName, out bool value)) { diff --git a/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Mirror/Materials/WaveXRMirror.shader b/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Mirror/Materials/WaveXRMirror.shader index d9fa8f44..cf26e0e8 100644 --- a/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Mirror/Materials/WaveXRMirror.shader +++ b/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Mirror/Materials/WaveXRMirror.shader @@ -21,6 +21,8 @@ Shader "Wave/XRMirror" CGPROGRAM #pragma vertex vert #pragma fragment frag + #pragma target 2.0 + #include "UnityCG.cginc" struct appdata @@ -36,6 +38,7 @@ Shader "Wave/XRMirror" float4 refl : TEXCOORD1; float2 idx : TEXCOORD2; float4 pos : SV_POSITION; + UNITY_VERTEX_OUTPUT_STEREO }; float4 _MainTex_ST; @@ -47,7 +50,7 @@ Shader "Wave/XRMirror" v2f o; UNITY_SETUP_INSTANCE_ID(v); //Insert - UNITY_INITIALIZE_OUTPUT(v2f, o); //Insert + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); //Insert o.pos = UnityObjectToClipPos(v.vertex); o.uv = TRANSFORM_TEX(v.uv, _MainTex); diff --git a/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Mirror/Scenes/MirrorTest.unity b/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Mirror/Scenes/MirrorTest.unity index 62cccbc3..32c913c6 100644 --- a/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Mirror/Scenes/MirrorTest.unity +++ b/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Mirror/Scenes/MirrorTest.unity @@ -26,7 +26,7 @@ RenderSettings: m_AmbientIntensity: 1 m_AmbientMode: 0 m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 2100000, guid: 19ac6e6a7b86fbd4bb22831939e541e0, type: 2} + m_SkyboxMaterial: {fileID: 0} m_HaloStrength: 0.5 m_FlareStrength: 1 m_FlareFadeSpeed: 3 @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.37311953, g: 0.38074014, b: 0.3587274, a: 1} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -20373,6 +20373,23 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 928795329} m_Modifications: + - target: {fileID: 806842206, guid: 28d6fd7324e3abd41b20a698e6341ed8, type: 3} + propertyPath: m_Layer + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 2035112057, guid: 28d6fd7324e3abd41b20a698e6341ed8, type: 3} + propertyPath: m_FarDistance + value: 30 + objectReference: {fileID: 0} + - target: {fileID: 2035112057, guid: 28d6fd7324e3abd41b20a698e6341ed8, type: 3} + propertyPath: m_ReflectLayers.m_Bits + value: 295 + objectReference: {fileID: 0} + - target: {fileID: 2301286267688977884, guid: 28d6fd7324e3abd41b20a698e6341ed8, + type: 3} + propertyPath: m_Layer + value: 4 + objectReference: {fileID: 0} - target: {fileID: 3514312458567729485, guid: 28d6fd7324e3abd41b20a698e6341ed8, type: 3} propertyPath: m_RootOrder @@ -20448,6 +20465,16 @@ PrefabInstance: propertyPath: m_Name value: HandMirror objectReference: {fileID: 0} + - target: {fileID: 5702569081058747538, guid: 28d6fd7324e3abd41b20a698e6341ed8, + type: 3} + propertyPath: m_Layer + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7609472817541659616, guid: 28d6fd7324e3abd41b20a698e6341ed8, + type: 3} + propertyPath: m_Layer + value: 4 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 28d6fd7324e3abd41b20a698e6341ed8, type: 3} --- !u!4 &7903527944158982817 stripped diff --git a/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Mirror/Scripts/WaveXRMirror.cs b/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Mirror/Scripts/WaveXRMirror.cs index 7c9f33cc..2afc779c 100644 --- a/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Mirror/Scripts/WaveXRMirror.cs +++ b/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/Mirror/Scripts/WaveXRMirror.cs @@ -2,8 +2,6 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.XR; -using UnityEngine.Rendering; -using System; using System.Collections; using System.Text; @@ -13,7 +11,10 @@ public class WaveXRMirror : MonoBehaviour public bool m_DisablePixelLights = true; public int m_TextureSize = 256; public float m_ClipPlaneOffset = 0.07f; - public int m_framesNeededToUpdate = 0; + public float m_FarDistance = 20.0f; + public float m_NearDistance = 0.03f; + [Tooltip("Unused now")] + public int m_framesNeededToUpdate = 0; public LayerMask m_ReflectLayers = -1; @@ -21,16 +22,17 @@ public class WaveXRMirror : MonoBehaviour private RenderTexture m_ReflectionTextureLeft = null; private RenderTexture m_ReflectionTextureRight = null; - private int m_OldReflectionTextureSize = 0; + private RenderTexture m_ReflectionTextureMono = null; + private int m_OldReflectionTextureSize = 0; private uint m_frameCounter = 0; + private int frameCount = 0; private static bool s_InsideRendering = false; private XRDisplaySubsystem targetDisplay = null; private int passCount = 0; - private int currentPass = -1; private Matrix4x4 worldToCameraMatrixL, worldToCameraMatrixR; private Matrix4x4 projectionMatrixL, projectionMatrixR; @@ -38,13 +40,15 @@ public class WaveXRMirror : MonoBehaviour [Tooltip("MirrorPlane's forward direction will be going out of the mirror perpendicularly. MirrorPlane's position should be a point on the mirror's plane. If empty, use this gameobject as the mirror plane.")] public GameObject mirrorPlaneObj; + List displays = new List(); + private bool GetTargetDisplaySubsystem() { - List displays = new List(); SubsystemManager.GetInstances(displays); if (displays.Count == 0) - throw new Exception("No XR display provider."); + return false; + //throw new Exception("No XR display provider."); foreach (var d in displays) { @@ -62,7 +66,9 @@ private bool GetWorldCameraMatrixFromDisplayProvider() XRDisplaySubsystem.XRRenderPass renderPass; XRDisplaySubsystem.XRRenderParameter renderParameter; + if (!GetTargetDisplaySubsystem()) return false; var display = targetDisplay; + if (display == null) return false; passCount = display.GetRenderPassCount(); if (passCount == 1) @@ -126,13 +132,12 @@ private void OnEnable() { if (mirrorPlaneObj == null) mirrorPlaneObj = gameObject; - - Application.SetStackTraceLogType(LogType.Log, StackTraceLogType.None); } + bool hasDisplaySubsystem; IEnumerator Start() { - // Make sure we got the display provider. + // Make sure we got the display provider. while (targetDisplay == null) { #pragma warning disable @@ -142,6 +147,7 @@ IEnumerator Start() { if (GetTargetDisplaySubsystem()) { + hasDisplaySubsystem = true; Debug.Log("We got a display provider:" + targetDisplay.SubsystemDescriptor.id); break; } @@ -149,18 +155,13 @@ IEnumerator Start() catch { // stop running this script - enabled = false; + //enabled = false; break; } yield return null; } } - private void Update() - { - currentPass = -1; - } - bool NeedUpdate(bool isSinglePass, Camera.MonoOrStereoscopicEye stereoActiveEye) { Debug.Log("NeedUpdate isSinglePass=" + isSinglePass + ", stereoActiveEye=" + stereoActiveEye); @@ -197,11 +198,14 @@ bool NeedUpdate(bool isSinglePass, Camera.MonoOrStereoscopicEye stereoActiveEye) return false; } - // This is called when it's known that the object will be rendered by some - // camera. We render reflections and do other updates here. - // Because the script executes in edit mode, reflections for the scene view - // camera will just work! - public void OnWillRenderObject() + string propertyL = "_ReflectionTexLeft"; + string propertyR = "_ReflectionTexRight"; + + // This is called when it's known that the object will be rendered by some + // camera. We render reflections and do other updates here. + // Because the script executes in edit mode, reflections for the scene view + // camera will just work! + public void OnWillRenderObject() { var rend = GetComponent(); if (!enabled || !rend || !rend.sharedMaterial || !rend.enabled) @@ -215,46 +219,43 @@ public void OnWillRenderObject() if (s_InsideRendering) return; - // Only run on VR camera - if (cam != Camera.main || cam.stereoTargetEye != StereoTargetEyeMask.Both) - return; - - s_InsideRendering = true; - do + // Only run on VR camera. Or if a scene view camera try see it, we update it only in editor + if (cam.stereoTargetEye != StereoTargetEyeMask.Both) { - // Only update matrices and currentPass when current pass is no pass. - if (currentPass == -1) + if (cam == Camera.main && Application.isEditor) { - if (!GetWorldCameraMatrixFromDisplayProvider()) - break; + s_InsideRendering = true; + RenderCamera(cam, rend, ref m_ReflectionTextureMono); + Material[] ms = rend.materials; + foreach (Material mat in ms) + { + if (mat.HasProperty(propertyL)) + mat.SetTexture(propertyL, m_ReflectionTextureMono); + if (mat.HasProperty(propertyR)) + mat.SetTexture(propertyR, m_ReflectionTextureMono); + } + s_InsideRendering = false; } - currentPass++; - if (currentPass >= passCount) - break; + return; + } - // SinglePass only render once - if (passCount == 1) - { - RenderCamera(cam, rend, Camera.StereoscopicEye.Left, ref m_ReflectionTextureLeft); - RenderCamera(cam, rend, Camera.StereoscopicEye.Right, ref m_ReflectionTextureRight); - } + if (targetDisplay == null) + return; - // MultiPass will enter the OnWillRenderObject twice - if (passCount == 2) - { - // Because the cam.stereoActiveEye is always return Left, use pass to change eye. - if (currentPass == 0) - RenderCamera(cam, rend, Camera.StereoscopicEye.Left, ref m_ReflectionTextureLeft); - if (currentPass == 1) - RenderCamera(cam, rend, Camera.StereoscopicEye.Right, ref m_ReflectionTextureRight); - } - } while (false); + if (!GetWorldCameraMatrixFromDisplayProvider()) + return; + + if (frameCount == Time.frameCount) + return; + frameCount = Time.frameCount; + + s_InsideRendering = true; + RenderCamera(cam, rend, Camera.StereoscopicEye.Left, ref m_ReflectionTextureLeft); + RenderCamera(cam, rend, Camera.StereoscopicEye.Right, ref m_ReflectionTextureRight); s_InsideRendering = false; // Update material after the render command. Material[] materials = rend.materials; - string propertyL = "_ReflectionTex" + Camera.StereoscopicEye.Left; - string propertyR = "_ReflectionTex" + Camera.StereoscopicEye.Right; foreach (Material mat in materials) { if (mat.HasProperty(propertyL)) @@ -305,9 +306,13 @@ private void GetMatrixAndPoseOfCamera(Camera cam, Camera.StereoscopicEye eye, ou } */ } + private void GetMatrixAndPoseOfCamera(Camera cam, out Matrix4x4 worldToCameraMatrix, out Pose cameraPose) + { + worldToCameraMatrix = cam.worldToCameraMatrix; // GL convension + cameraPose = new Pose(cam.transform.position, GetRotation(worldToCameraMatrix)); + } - - private void RenderCamera(Camera cam, Renderer rend, Camera.StereoscopicEye eye, ref RenderTexture reflectionTexture) + private void RenderCamera(Camera cam, Renderer rend, Camera.StereoscopicEye eye, ref RenderTexture reflectionTexture) { Camera reflectionCamera; CreateMirrorObjects(cam, eye, out reflectionCamera, ref reflectionTexture); @@ -373,21 +378,98 @@ private void RenderCamera(Camera cam, Renderer rend, Camera.StereoscopicEye eye, s_InsideRendering = false; } + // For Mono + private void RenderCamera(Camera cam, Renderer rend, ref RenderTexture reflectionTexture) + { + Camera reflectionCamera; + CreateMirrorObjects(cam, out reflectionCamera, ref reflectionTexture); + if (reflectionCamera == null) + return; + + Vector3 pos = mirrorPlaneObj.transform.position; + Vector3 normal = mirrorPlaneObj.transform.forward; + /* + Vector3 pos = transform.position; + Vector3 normal = transform.up; + */ + + int oldPixelLightCount = QualitySettings.pixelLightCount; + if (m_DisablePixelLights) + QualitySettings.pixelLightCount = 0; + + CopyCameraProperties(cam, reflectionCamera); + + + float d = -Vector3.Dot(normal, pos) - m_ClipPlaneOffset; + Vector4 reflectionPlane = new Vector4(normal.x, normal.y, normal.z, d); + + Matrix4x4 reflection = Matrix4x4.zero; + CalculateReflectionMatrix(ref reflection, reflectionPlane); + + Vector3 oldEyePos; + Matrix4x4 worldToCameraMatrix; + Pose cameraPose; + GetMatrixAndPoseOfCamera(cam, out worldToCameraMatrix, out cameraPose); + oldEyePos = cameraPose.position; + + reflectionCamera.projectionMatrix = cam.projectionMatrix; + Vector3 newEyePos = reflection.MultiplyPoint(oldEyePos); + reflectionCamera.transform.position = newEyePos; + + reflectionCamera.worldToCameraMatrix = worldToCameraMatrix * reflection; + + Vector4 clipPlane = CameraSpacePlane(worldToCameraMatrix * reflection, pos, normal, 1.0f); + + Matrix4x4 projectionMatrix = cam.projectionMatrix; + + MakeProjectionMatrixOblique(ref projectionMatrix, clipPlane); + + //projectionMatrix = CalculateObliqueMatrix(reflectionCamera, clipPlane); + + reflectionCamera.projectionMatrix = projectionMatrix; + reflectionCamera.cullingMatrix = projectionMatrix * reflectionCamera.worldToCameraMatrix; + reflectionCamera.cullingMask = m_ReflectLayers.value; + reflectionCamera.targetTexture = reflectionTexture; + GL.invertCulling = true; + reflectionCamera.Render(); + reflectionCamera.enabled = false; + GL.invertCulling = false; + + if (m_DisablePixelLights) + QualitySettings.pixelLightCount = oldPixelLightCount; - void OnDisable() + s_InsideRendering = false; + } + + + void OnDisable() { if (m_ReflectionTextureLeft) { - DestroyImmediate(m_ReflectionTextureLeft); + m_ReflectionTextureLeft.Release(); + Destroy(m_ReflectionTextureLeft); m_ReflectionTextureLeft = null; } if (m_ReflectionTextureRight) { - DestroyImmediate(m_ReflectionTextureRight); + m_ReflectionTextureRight.Release(); + Destroy(m_ReflectionTextureRight); m_ReflectionTextureRight = null; } + if (m_ReflectionTextureMono) + { + m_ReflectionTextureMono.Release(); + Destroy(m_ReflectionTextureMono); + m_ReflectionTextureMono = null; + } foreach (var kvp in m_ReflectionCameras) - DestroyImmediate(((Camera)kvp.Value).gameObject); + { + var value = (Camera)kvp.Value; + if (value == null) continue; + var obj = value.gameObject; + if (obj == null) continue; + Destroy(obj); + } m_ReflectionCameras.Clear(); } @@ -395,6 +477,8 @@ private void CopyCameraProperties(Camera src, Camera dest) { if (dest == null) return; + //dest.clearFlags = CameraClearFlags.Color; + //dest.backgroundColor = new Color(.9f, .9f, .9f); dest.clearFlags = src.clearFlags; dest.backgroundColor = src.backgroundColor; if (src.clearFlags == CameraClearFlags.Skybox) @@ -413,9 +497,9 @@ private void CopyCameraProperties(Camera src, Camera dest) } //dest.farClipPlane = 30; - dest.farClipPlane = src.farClipPlane; - dest.nearClipPlane = src.nearClipPlane; - dest.orthographic = src.orthographic; + dest.farClipPlane = m_FarDistance; // src.farClipPlane; + dest.nearClipPlane = m_NearDistance; // src.nearClipPlane; + dest.orthographic = src.orthographic; dest.fieldOfView = src.fieldOfView; dest.aspect = src.aspect; dest.orthographicSize = src.orthographicSize; @@ -428,11 +512,13 @@ private void CreateMirrorObjects(Camera currentCamera, Camera.StereoscopicEye ey { reflectionCamera = null; - if (!reflectionTexture || m_OldReflectionTextureSize != m_TextureSize) { if (reflectionTexture) + { + reflectionTexture.Release(); DestroyImmediate(reflectionTexture); + } reflectionTexture = new RenderTexture(m_TextureSize, m_TextureSize, 16); reflectionTexture.name = "__MirrorReflection" + eye.ToString() + GetInstanceID(); reflectionTexture.isPowerOfTwo = true; @@ -455,7 +541,42 @@ private void CreateMirrorObjects(Camera currentCamera, Camera.StereoscopicEye ey } } - private Vector4 CameraSpacePlane(Matrix4x4 worldToCameraMatrix, Vector3 pos, Vector3 normal, float sideSign) + // For Mono + private void CreateMirrorObjects(Camera currentCamera, out Camera reflectionCamera, ref RenderTexture reflectionTexture) + { + reflectionCamera = null; + + + if (!reflectionTexture || m_OldReflectionTextureSize != m_TextureSize) + { + if (reflectionTexture) + { + reflectionTexture.Release(); + DestroyImmediate(reflectionTexture); + } + reflectionTexture = new RenderTexture(m_TextureSize, m_TextureSize, 16); + reflectionTexture.name = "__MirrorReflectionMono" + GetInstanceID(); + reflectionTexture.isPowerOfTwo = true; + reflectionTexture.hideFlags = HideFlags.DontSave; + m_OldReflectionTextureSize = m_TextureSize; + } + + if (!m_ReflectionCameras.TryGetValue(currentCamera, out reflectionCamera)) + { + GameObject go = new GameObject("Mirror Reflection Camera id" + GetInstanceID() + " for " + currentCamera.GetInstanceID(), typeof(Camera), typeof(Skybox)); + reflectionCamera = go.GetComponent(); + reflectionCamera.enabled = false; + reflectionCamera.transform.position = transform.position; + reflectionCamera.transform.rotation = transform.rotation; + reflectionCamera.gameObject.AddComponent(); + go.hideFlags = HideFlags.DontSave; + go.hideFlags = HideFlags.HideInInspector; + go.hideFlags = HideFlags.HideInHierarchy; + m_ReflectionCameras.Add(currentCamera, reflectionCamera); + } + } + + private Vector4 CameraSpacePlane(Matrix4x4 worldToCameraMatrix, Vector3 pos, Vector3 normal, float sideSign) { Vector3 offsetPos = pos + normal * m_ClipPlaneOffset; Vector3 cpos = worldToCameraMatrix.MultiplyPoint(offsetPos); diff --git a/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/StereoRenderMode/Scripts/StereoRenderModeHandle.cs b/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/StereoRenderMode/Scripts/StereoRenderModeHandle.cs index 4b47a144..38c1c4e8 100644 --- a/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/StereoRenderMode/Scripts/StereoRenderModeHandle.cs +++ b/com.htc.upm.wave.xrsdk/Samples~/PureUnity/PureUnity/StereoRenderMode/Scripts/StereoRenderModeHandle.cs @@ -121,16 +121,24 @@ private void Update() } public void OnSinglePassButtonPressed() - { + { if (display == null) return; +#if UNITY_2020_1_OR_NEWER + display.textureLayout = XRDisplaySubsystem.TextureLayout.Texture2DArray; +#else display.singlePassRenderingDisabled = false; +#endif hasChange = 3; } public void OnMultiPassButtonPressed() { if (display == null) return; +#if UNITY_2020_1_OR_NEWER + display.textureLayout = XRDisplaySubsystem.TextureLayout.SeparateTexture2Ds; +#else display.singlePassRenderingDisabled = true; +#endif hasChange = 3; } diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Controller/ControllerLegacy.unity b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Controller/ControllerLegacy.unity index eec6492e..6e3217df 100644 --- a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Controller/ControllerLegacy.unity +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Controller/ControllerLegacy.unity @@ -2811,7 +2811,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1567377844 RectTransform: m_ObjectHideFlags: 0 @@ -3012,7 +3012,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1722157654 RectTransform: m_ObjectHideFlags: 0 @@ -8772,7 +8772,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!114 &4044859923925435917 MonoBehaviour: m_ObjectHideFlags: 0 @@ -8790,7 +8790,7 @@ MonoBehaviour: _normalColor: {r: 1, g: 0.27044016, b: 0.27044016, a: 1} _pressedColor: {r: 0.32704395, g: 1, b: 0.43455204, a: 1} isLeft: 0 - binaryButton: 3 + binaryButton: 9 --- !u!224 &4044859924280959812 RectTransform: m_ObjectHideFlags: 0 @@ -15734,7 +15734,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!114 &7908250859836447759 MonoBehaviour: m_ObjectHideFlags: 0 @@ -15751,8 +15751,8 @@ MonoBehaviour: _image: {fileID: 7908250859917179205} _normalColor: {r: 1, g: 0.27044016, b: 0.27044016, a: 1} _pressedColor: {r: 0.32704395, g: 1, b: 0.43455204, a: 1} - isLeft: 0 - binaryButton: 3 + isLeft: 1 + binaryButton: 9 --- !u!222 &7908250859917179204 CanvasRenderer: m_ObjectHideFlags: 0 diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Controller/Scripts/ActionToButton.cs b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Controller/Scripts/ActionToButton.cs index dabfb30f..7e74a197 100644 --- a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Controller/Scripts/ActionToButton.cs +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Controller/Scripts/ActionToButton.cs @@ -74,7 +74,7 @@ private void Update() if (!UseInputAction) #endif { - if (_text != null) { _text.text = binaryButton.ToString(); } + if (_text != null) { _text.text = binaryButton.Name(); } if (InputDeviceControl.KeyDown( (isLeft ? InputDeviceControl.ControlDevice.Left : InputDeviceControl.ControlDevice.Right), binaryButton.InputFeature()) diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Controller/Scripts/Utils.cs b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Controller/Scripts/Utils.cs index a3ae9710..44f354db 100644 --- a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Controller/Scripts/Utils.cs +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Controller/Scripts/Utils.cs @@ -11,6 +11,7 @@ using UnityEngine; using UnityEngine.XR; using System; +using CommonUsages = UnityEngine.XR.CommonUsages; #if ENABLE_INPUT_SYSTEM using UnityEngine.InputSystem; @@ -49,23 +50,42 @@ public enum BinaryButtons : UInt32 primary2DAxisClick, primary2DAxisTouch, triggerButton, + triggerTouch, secondary2DAxisClick, secondary2DAxisTouch, } + public static string Name(this BinaryButtons button) + { + if (button == BinaryButtons.menuButton) { return "menuButton"; } + if (button == BinaryButtons.gripButton) { return "gripButton"; } + if (button == BinaryButtons.primaryButton) { return "primaryButton"; } + if (button == BinaryButtons.primaryTouch) { return "primaryTouch"; } + if (button == BinaryButtons.secondaryButton) { return "secondaryButton"; } + if (button == BinaryButtons.secondaryTouch) { return "secondaryTouch"; } + if (button == BinaryButtons.primary2DAxisClick) { return "primary2DAxisClick"; } + if (button == BinaryButtons.primary2DAxisTouch) { return "primary2DAxisTouch"; } + if (button == BinaryButtons.triggerButton) { return "triggerButton"; } + if (button == BinaryButtons.triggerTouch) { return "triggerTouch"; } + if (button == BinaryButtons.secondary2DAxisClick) { return "secondary2DAxisClick"; } + if (button == BinaryButtons.secondary2DAxisTouch) { return "secondary2DAxisTouch"; } + + return ""; + } public static InputFeatureUsage InputFeature(this BinaryButtons button) { - if (button == BinaryButtons.menuButton) { return UnityEngine.XR.CommonUsages.menuButton; } - if (button == BinaryButtons.gripButton) { return UnityEngine.XR.CommonUsages.gripButton; } - if (button == BinaryButtons.primaryButton) { return UnityEngine.XR.CommonUsages.primaryButton; } - if (button == BinaryButtons.primaryTouch) { return UnityEngine.XR.CommonUsages.primaryTouch; } - if (button == BinaryButtons.secondaryButton) { return UnityEngine.XR.CommonUsages.secondaryButton; } - if (button == BinaryButtons.secondaryTouch) { return UnityEngine.XR.CommonUsages.secondaryTouch; } - if (button == BinaryButtons.primary2DAxisClick) { return UnityEngine.XR.CommonUsages.primary2DAxisClick; } - if (button == BinaryButtons.secondary2DAxisClick) { return UnityEngine.XR.CommonUsages.secondary2DAxisClick; } - if (button == BinaryButtons.triggerButton) { return UnityEngine.XR.CommonUsages.triggerButton; } - if (button == BinaryButtons.primary2DAxisTouch) { return UnityEngine.XR.CommonUsages.primary2DAxisTouch; } - - return UnityEngine.XR.CommonUsages.secondary2DAxisTouch; + if (button == BinaryButtons.menuButton) { return CommonUsages.menuButton; } + if (button == BinaryButtons.gripButton) { return CommonUsages.gripButton; } + if (button == BinaryButtons.primaryButton) { return CommonUsages.primaryButton; } + if (button == BinaryButtons.primaryTouch) { return CommonUsages.primaryTouch; } + if (button == BinaryButtons.secondaryButton) { return CommonUsages.secondaryButton; } + if (button == BinaryButtons.secondaryTouch) { return CommonUsages.secondaryTouch; } + if (button == BinaryButtons.primary2DAxisClick) { return CommonUsages.primary2DAxisClick; } + if (button == BinaryButtons.secondary2DAxisClick) { return CommonUsages.secondary2DAxisClick; } + if (button == BinaryButtons.triggerButton) { return CommonUsages.triggerButton; } + if (button == BinaryButtons.triggerTouch) { return new InputFeatureUsage("TriggerTouch"); } + if (button == BinaryButtons.primary2DAxisTouch) { return CommonUsages.primary2DAxisTouch; } + + return CommonUsages.secondary2DAxisTouch; } public enum Vector2Buttons : UInt32 diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker.meta b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker.meta new file mode 100644 index 00000000..e0c9b369 --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 286e90b34c56df54cb2581c5fbd8a0fe +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts.meta b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts.meta new file mode 100644 index 00000000..f41a8e5c --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d061f51831d99b3409cd916c0d28a535 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/QuitApplication.cs b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/QuitApplication.cs new file mode 100644 index 00000000..c5c27801 --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/QuitApplication.cs @@ -0,0 +1,28 @@ +// "WaveVR SDK +// © 2023 HTC Corporation. All Rights Reserved. +// +// Unless otherwise required by copyright law and practice, +// upon the execution of HTC SDK license agreement, +// HTC grants you access to and use of the WaveVR SDK(s). +// You shall fully comply with all of HTC’s SDK license agreement terms and +// conditions signed by you and all SDK and API requirements, +// specifications, and documentation provided by HTC to You." + +using UnityEngine; +using UnityEngine.SceneManagement; + +namespace Wave.OpenXR +{ + public class QuitApplication : MonoBehaviour + { + public void ExitGame() + { + Application.Quit(); + } + + public void BackToUpLayer() + { + SceneManager.LoadScene(0); + } + } +} diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/QuitApplication.cs.meta b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/QuitApplication.cs.meta new file mode 100644 index 00000000..be956a66 --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/QuitApplication.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ee9b3153fead842458f8ee62e4d82232 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerDeviceManager.cs b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerDeviceManager.cs new file mode 100644 index 00000000..bd649629 --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerDeviceManager.cs @@ -0,0 +1,61 @@ +// "Wave SDK +// © 2023 HTC Corporation. All Rights Reserved. +// +// Unless otherwise required by copyright law and practice, +// upon the execution of HTC SDK license agreement, +// HTC grants you access to and use of the Wave SDK(s). +// You shall fully comply with all of HTC\u2019s SDK license agreement terms and +// conditions signed by you and all SDK and API requirements, +// specifications, and documentation provided by HTC to You." + +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace Wave.OpenXR +{ + public class TrackerDeviceManager : MonoBehaviour + { + [SerializeField] + private GameObject poseMarkerTemplate = null; + + private Dictionary trackerObjectList = new Dictionary(); + private bool enableTracker = true; + + private void Awake() + { + if (poseMarkerTemplate != null) + poseMarkerTemplate.SetActive(false); + InputDeviceTracker.ActivateTracker(true); + } + + private void Update() + { + foreach (InputDeviceTracker.TrackerId id in Enum.GetValues(typeof(InputDeviceTracker.TrackerId))) + { + bool isTracked = InputDeviceTracker.IsTracked(id); + bool isInit = trackerObjectList.ContainsKey(id); + if (isInit) + { + trackerObjectList[id].SetActive(isTracked && enableTracker); + } + else if (!isInit && isTracked && poseMarkerTemplate != null) + { + GameObject poseMarker = Instantiate(poseMarkerTemplate, parent: transform); + poseMarker.SetActive(true); + TrackerPose trackerPose = poseMarker.GetComponentInChildren(); + trackerPose.SetTrackerId(id); + trackerObjectList.Add(id, poseMarker); + } + } + } + + public void EnableTracker(Text textUI) + { + enableTracker = !enableTracker; + InputDeviceTracker.ActivateTracker(enableTracker); + textUI.text = enableTracker ? "Disable Tracker" : "Enable Tracker"; + } + } +} diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerDeviceManager.cs.meta b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerDeviceManager.cs.meta new file mode 100644 index 00000000..89bc59bf --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerDeviceManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7dd3b5817f4169447b37c9cb3a5c5ce9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerPose.cs b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerPose.cs new file mode 100644 index 00000000..c6a82716 --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerPose.cs @@ -0,0 +1,38 @@ +// "Wave SDK +// © 2023 HTC Corporation. All Rights Reserved. +// +// Unless otherwise required by copyright law and practice, +// upon the execution of HTC SDK license agreement, +// HTC grants you access to and use of the Wave SDK(s). +// You shall fully comply with all of HTC\u2019s SDK license agreement terms and +// conditions signed by you and all SDK and API requirements, +// specifications, and documentation provided by HTC to You." + +using UnityEngine; + +namespace Wave.OpenXR +{ + public class TrackerPose : MonoBehaviour + { + private InputDeviceTracker.TrackerId m_Tracker = default; + private bool isInit = false; + + // Update is called once per frame + void Update() + { + if (isInit && InputDeviceTracker.IsTracked(m_Tracker)) + { + InputDeviceTracker.GetPosition(m_Tracker, out Vector3 position); + InputDeviceTracker.GetRotation(m_Tracker, out Quaternion rotation); + transform.position = position; + transform.rotation = rotation; + } + } + + public void SetTrackerId(InputDeviceTracker.TrackerId tracker) + { + m_Tracker = tracker; + isInit = true; + } + } +} diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerPose.cs.meta b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerPose.cs.meta new file mode 100644 index 00000000..8e8a55e5 --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerPose.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 55d2a03c26a364a49b2850b0705b1405 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerText.cs b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerText.cs new file mode 100644 index 00000000..c0b33421 --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerText.cs @@ -0,0 +1,187 @@ +// "Wave SDK +// © 2023 HTC Corporation. All Rights Reserved. +// +// Unless otherwise required by copyright law and practice, +// upon the execution of HTC SDK license agreement, +// HTC grants you access to and use of the Wave SDK(s). +// You shall fully comply with all of HTC\u2019s SDK license agreement terms and +// conditions signed by you and all SDK and API requirements, +// specifications, and documentation provided by HTC to You." + +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.XR; + +namespace Wave.OpenXR +{ + [RequireComponent(typeof(Text))] + public class TrackerText : MonoBehaviour + { + public enum TextSelect + { + DeviceName, + Role, + Connection, + Position, + Rotation, + Velocity, + AngularVelocity, + Acceleration, + AngularAcceleration, + Press, + Battery, + } + + #region Inspector + public TextSelect TextFor = TextSelect.Connection; + #endregion + + private Text m_Text = null; + private InputDeviceTracker.TrackerId m_Tracker = InputDeviceTracker.TrackerId.Tracker0; + private bool isInit = false; + + private void Awake() + { + m_Text = GetComponent(); + } + + private void Update() + { + if (m_Text == null || !isInit) { return; } + + + switch (TextFor) + { + case TextSelect.DeviceName: + m_Text.text = m_Tracker.Name() + " "; + TextDeviceName(); + break; + case TextSelect.Role: TextRole(); break; + case TextSelect.Connection:TextConnection(); break; + case TextSelect.Position: TextPosition(); break; + case TextSelect.Rotation: TextRotation(); break; + case TextSelect.Velocity: TextVelocity(); break; + case TextSelect.AngularVelocity: TextAngularVelocity(); break; + case TextSelect.Acceleration: TextAcceleration(); break; + case TextSelect.AngularAcceleration: TextAngularAcceleration(); break; + case TextSelect.Press: TextPress(); break; + case TextSelect.Battery: TextBattery(); break; + default: + break; + } + } + + public void SetTrackerId(InputDeviceTracker.TrackerId tracker) + { + m_Tracker = tracker; + isInit = true; + } + + private void TextConnection() + { + if (InputDeviceTracker.IsAvailable(m_Tracker)) + { + m_Text.text = "Connected: True"; + if (InputDeviceTracker.GetTrackingState(m_Tracker, out InputTrackingState state)) + { + if (state == InputTrackingState.All) { m_Text.text += " | State : all"; } + else + { + m_Text.text += " | State :"; + if (state.HasFlag(InputTrackingState.Position)) { m_Text.text += " P"; } + if (state.HasFlag(InputTrackingState.Rotation)) { m_Text.text += " R"; } + if (state.HasFlag(InputTrackingState.Velocity)) { m_Text.text += " V"; } + if (state.HasFlag(InputTrackingState.AngularVelocity)) { m_Text.text += " AV"; } + if (state.HasFlag(InputTrackingState.Acceleration)) { m_Text.text += " A"; } + if (state.HasFlag(InputTrackingState.AngularAcceleration)) { m_Text.text += " AA"; } + } + } + else + { + m_Text.text += " | State : invalid"; + } + } + else + { + m_Text.text = "Connected: False"; + } + } + + private void TextRole() + { + m_Text.text = "Role: " + InputDeviceTracker.GetRole(m_Tracker); + } + + private void TextPosition() + { + InputDeviceTracker.GetPosition(m_Tracker, out Vector3 pos); + m_Text.text = "Position x: " + pos.x.ToString("F3") + ", y: " + pos.y.ToString("F3") + ", z: " + pos.z.ToString("F3"); + } + + private void TextRotation() + { + InputDeviceTracker.GetRotation(m_Tracker, out Quaternion rot); + Vector3 eulerAngles = rot.eulerAngles; + m_Text.text = "Rotation x: " + rot.x.ToString("F3") + ", y: " + rot.y.ToString("F3") + ", z: " + rot.z.ToString("F3") + ", w: " + rot.w.ToString("F3"); + } + + private void TextVelocity() + { + InputDeviceTracker.GetVelocity(m_Tracker, out Vector3 vel); + m_Text.text = "Velocity x: " + vel.x.ToString("F3") + ", y: " + vel.y.ToString("F3") + ", z: " + vel.z.ToString("F3"); + } + + private void TextAngularVelocity() + { + InputDeviceTracker.GetAngularVelocity(m_Tracker, out Vector3 vel); + m_Text.text = "AngularVel x: " + vel.x.ToString("F3") + ", y: " + vel.y.ToString("F3") + ", z: " + vel.z.ToString("F3"); + } + + private void TextAcceleration() + { + InputDeviceTracker.GetAcceleration(m_Tracker, out Vector3 acc); + m_Text.text = "Acceleration x: " + acc.x.ToString("F3") + ", y: " + acc.y.ToString("F3") + ", z: " + acc.z.ToString("F3"); + } + + private void TextAngularAcceleration() + { + InputDeviceTracker.GetAngularAcceleration(m_Tracker, out Vector3 acc); + m_Text.text = "AngularAcc x: " + acc.x.ToString("F3") + ", y: " + acc.y.ToString("F3") + ", z: " + acc.z.ToString("F3"); + } + + private void TextPress() + { + m_Text.text = "Pressed:"; + if (InputDeviceTracker.ButtonDown(m_Tracker, UnityEngine.XR.CommonUsages.menuButton, out bool menuButtonDown)) + { + if (menuButtonDown) + { + m_Text.text += " menuButton"; + InputDeviceTracker.HapticPulse(m_Tracker); + return; + } + } + if (InputDeviceTracker.ButtonDown(m_Tracker, UnityEngine.XR.CommonUsages.primaryButton, out bool primaryButtonDown)) + { + if (primaryButtonDown) + { + m_Text.text += " primaryButton"; + InputDeviceTracker.HapticPulse(m_Tracker); + return; + } + } + } + + private void TextBattery() + { + InputDeviceTracker.BatteryLevel(m_Tracker, out float level); + m_Text.text = "Battery: " + level * 100 + "%"; + } + + private void TextDeviceName() + { + InputDeviceTracker.GetTrackerDeviceName(m_Tracker, out string trackerName); + m_Text.text += trackerName; + } + } +} diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerText.cs.meta b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerText.cs.meta new file mode 100644 index 00000000..98f6a02f --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerText.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bc64dbb0feba26349871cc8e3154532c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerTextManager.cs b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerTextManager.cs new file mode 100644 index 00000000..1466c241 --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerTextManager.cs @@ -0,0 +1,125 @@ +// "Wave SDK +// © 2023 HTC Corporation. All Rights Reserved. +// +// Unless otherwise required by copyright law and practice, +// upon the execution of HTC SDK license agreement, +// HTC grants you access to and use of the Wave SDK(s). +// You shall fully comply with all of HTC\u2019s SDK license agreement terms and +// conditions signed by you and all SDK and API requirements, +// specifications, and documentation provided by HTC to You." + +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace Wave.OpenXR +{ + public class TrackerTextManager : MonoBehaviour + { + [SerializeField] + private GameObject trackerPanelTemplate = null; + + private Dictionary trackerTextList = new Dictionary(); + private List trackerIdList = new List(); + + private const float kMaxCount = 8; + /// + /// Base on to divide 180 degrees into kMaxCount -1 of equal divisions + /// + private const float kDiffDeg = 180 / (kMaxCount - 1); + private const float kRadius = 175; + private bool showAll = true; + + private void Awake() + { + if (trackerPanelTemplate != null) + trackerPanelTemplate.SetActive(false); + } + + private void Start() + { + foreach (InputDeviceTracker.TrackerId id in Enum.GetValues(typeof(InputDeviceTracker.TrackerId))) + { + if (!trackerTextList.ContainsKey(id) && trackerPanelTemplate != null) + { + GameObject trackerPanel = Instantiate(trackerPanelTemplate, parent: transform); + trackerPanel.SetActive(true); + SetRandomColor(trackerPanel); + TrackerText[] trackerTexts = trackerPanel.GetComponentsInChildren(); + foreach (TrackerText trackerText in trackerTexts) + trackerText.SetTrackerId(id); + trackerTextList.Add(id, trackerPanel); + } + trackerIdList.Add(id); + } + } + + private void Update() + { + if (showAll) + { + ShowPanels(); + } + else + { + ShowTrackedPanels(); + } + } + + private void SetRandomColor(GameObject gameObject) + { + Image image = gameObject.GetComponent(); + if (image == null) { return; } + + float r = UnityEngine.Random.Range(50, 200) / 255.0f; + float g = UnityEngine.Random.Range(50, 200) / 255.0f; + float b = UnityEngine.Random.Range(50, 200) / 255.0f; + image.color = new Color(r, g, b); + } + + private void ShowPanels() + { + SetTrackerTextTranfom(trackerIdList); + } + + private void ShowTrackedPanels() + { + List trackerIds = new List(); + foreach (InputDeviceTracker.TrackerId id in Enum.GetValues(typeof(InputDeviceTracker.TrackerId))) + { + if (InputDeviceTracker.IsTracked(id)) + { + trackerIds.Add(id); + } + else + { + trackerTextList[id].SetActive(false); + } + } + SetTrackerTextTranfom(trackerIds); + } + + private void SetTrackerTextTranfom(List trackerIds) + { + int index = 0; + foreach (var id in trackerIds) + { + float sort = index % kMaxCount; + float offsetDeg = trackerIds.Count > 1 ? (Mathf.Min(trackerIds.Count, kMaxCount) - 1) * kDiffDeg / 2 : 0; + float objectDeg = offsetDeg - kDiffDeg * sort; + float objectRad = objectDeg * Mathf.Deg2Rad; + float height = index >= kMaxCount ? 50 : 0; + trackerTextList[id].transform.position = new Vector3(-kRadius * Mathf.Sin(objectRad), height, kRadius * Mathf.Cos(objectRad)); + trackerTextList[id].transform.rotation = Quaternion.Euler(0, -objectDeg, 0); + trackerTextList[id].SetActive(true); + index++; + } + } + + public void SwitchPanel() + { + showAll = !showAll; + } + } +} diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerTextManager.cs.meta b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerTextManager.cs.meta new file mode 100644 index 00000000..3d7a7523 --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/Scripts/TrackerTextManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 87ae86318c55c6a47b1eb77a0b6980fd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/TrackersXR.unity b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/TrackersXR.unity new file mode 100644 index 00000000..9f2ba0b4 --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/TrackersXR.unity @@ -0,0 +1,2647 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 2100000, guid: 81194c81dcd23a54aa06f261b6dc1846, type: 2} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.006490347, g: 0.023789566, b: 0.076484226, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &26868742 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 26868743} + - component: {fileID: 26868745} + - component: {fileID: 26868744} + - component: {fileID: 26868746} + m_Layer: 5 + m_Name: DeviceName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &26868743 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 26868742} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 788277381} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -40} + m_SizeDelta: {x: 750, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &26868744 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 26868742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 30 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Device Name +--- !u!222 &26868745 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 26868742} + m_CullTransparentMesh: 0 +--- !u!114 &26868746 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 26868742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bc64dbb0feba26349871cc8e3154532c, type: 3} + m_Name: + m_EditorClassIdentifier: + TextFor: 0 +--- !u!1 &318141940 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 318141941} + - component: {fileID: 318141944} + - component: {fileID: 318141943} + - component: {fileID: 318141942} + - component: {fileID: 318141945} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &318141941 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318141940} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 788277381} + - {fileID: 631772906} + - {fileID: 1937098290} + - {fileID: 1532664866} + m_Father: {fileID: 1141251792} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &318141942 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318141940} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &318141943 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318141940} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &318141944 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318141940} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &318141945 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318141940} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 87ae86318c55c6a47b1eb77a0b6980fd, type: 3} + m_Name: + m_EditorClassIdentifier: + trackerPanelTemplate: {fileID: 788277380} +--- !u!1 &374829806 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 374829807} + - component: {fileID: 374829810} + - component: {fileID: 374829809} + - component: {fileID: 374829808} + m_Layer: 5 + m_Name: AngularVel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &374829807 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 374829806} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 788277381} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -360} + m_SizeDelta: {x: 750, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &374829808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 374829806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bc64dbb0feba26349871cc8e3154532c, type: 3} + m_Name: + m_EditorClassIdentifier: + TextFor: 6 +--- !u!114 &374829809 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 374829806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 30 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'AngularVel:' +--- !u!222 &374829810 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 374829806} + m_CullTransparentMesh: 0 +--- !u!1 &401948469 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 401948470} + - component: {fileID: 401948473} + - component: {fileID: 401948472} + - component: {fileID: 401948471} + m_Layer: 0 + m_Name: Head + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &401948470 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 401948469} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 936855749} + m_Father: {fileID: 814493289} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &401948471 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 401948469} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a2a9c34df4095f47b9ca8f975175f5b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Device: 0 + m_PoseSource: 2 + m_PoseProviderComponent: {fileID: 0} + m_TrackingType: 0 + m_UpdateType: 0 + m_UseRelativeTransform: 0 +--- !u!81 &401948472 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 401948469} + m_Enabled: 1 +--- !u!20 &401948473 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 401948469} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.01 + far clip plane: 1000 + field of view: 90 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!1 &521126174 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 521126176} + - component: {fileID: 521126175} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &521126175 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521126174} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &521126176 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521126174} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &623934090 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 623934091} + - component: {fileID: 623934094} + - component: {fileID: 623934093} + - component: {fileID: 623934092} + m_Layer: 5 + m_Name: Rotation + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &623934091 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 623934090} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 788277381} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -260} + m_SizeDelta: {x: 750, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &623934092 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 623934090} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bc64dbb0feba26349871cc8e3154532c, type: 3} + m_Name: + m_EditorClassIdentifier: + TextFor: 4 +--- !u!114 &623934093 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 623934090} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 30 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Rotation:' +--- !u!222 &623934094 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 623934090} + m_CullTransparentMesh: 0 +--- !u!1 &631772905 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 631772906} + - component: {fileID: 631772909} + - component: {fileID: 631772908} + - component: {fileID: 631772907} + m_Layer: 5 + m_Name: BtnSwitch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &631772906 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 631772905} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_Children: + - {fileID: 1106490258} + m_Father: {fileID: 318141941} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -20, y: -20} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &631772907 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 631772905} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0, g: 0.9607844, b: 1, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 631772908} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 318141945} + m_MethodName: SwitchPanel + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &631772908 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 631772905} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &631772909 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 631772905} + m_CullTransparentMesh: 0 +--- !u!1 &644931581 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 644931582} + - component: {fileID: 644931585} + - component: {fileID: 644931584} + - component: {fileID: 644931583} + m_Layer: 5 + m_Name: Position + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &644931582 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 644931581} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 788277381} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -210} + m_SizeDelta: {x: 750, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &644931583 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 644931581} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bc64dbb0feba26349871cc8e3154532c, type: 3} + m_Name: + m_EditorClassIdentifier: + TextFor: 3 +--- !u!114 &644931584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 644931581} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 30 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Position:' +--- !u!222 &644931585 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 644931581} + m_CullTransparentMesh: 0 +--- !u!1 &788277380 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 788277381} + - component: {fileID: 788277383} + - component: {fileID: 788277382} + m_Layer: 5 + m_Name: TrackerPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &788277381 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 788277380} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 1} + m_Children: + - {fileID: 26868743} + - {fileID: 1833648965} + - {fileID: 1847747289} + - {fileID: 644931582} + - {fileID: 623934091} + - {fileID: 1487550845} + - {fileID: 374829807} + - {fileID: 1290577107} + - {fileID: 2101234209} + - {fileID: 1642807544} + - {fileID: 1668099568} + m_Father: {fileID: 318141941} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 20} + m_SizeDelta: {x: 800, y: 500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &788277382 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 788277380} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &788277383 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 788277380} + m_CullTransparentMesh: 0 +--- !u!1 &814493286 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 814493289} + - component: {fileID: 814493287} + m_Layer: 0 + m_Name: PlayerRig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &814493287 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 814493286} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b90eaae8ee7f6bf46be1c8ad060bd48d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionAsset: {fileID: -944628639613478452, guid: e0ca4504471ca124088e1e2cfe6804ae, + type: 3} +--- !u!4 &814493289 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 814493286} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 401948470} + - {fileID: 1460812014} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &820586025 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 820586028} + - component: {fileID: 820586027} + - component: {fileID: 820586026} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &820586026 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 820586025} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 +--- !u!114 &820586027 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 820586025} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &820586028 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 820586025} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &910552773 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1460812014} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: 759d6c64eadd0244eb752fb65642d6d2, + type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: 759d6c64eadd0244eb752fb65642d6d2, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: 759d6c64eadd0244eb752fb65642d6d2, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: 759d6c64eadd0244eb752fb65642d6d2, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: 759d6c64eadd0244eb752fb65642d6d2, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: 759d6c64eadd0244eb752fb65642d6d2, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: 759d6c64eadd0244eb752fb65642d6d2, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: 759d6c64eadd0244eb752fb65642d6d2, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: 759d6c64eadd0244eb752fb65642d6d2, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: 759d6c64eadd0244eb752fb65642d6d2, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: 759d6c64eadd0244eb752fb65642d6d2, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: 759d6c64eadd0244eb752fb65642d6d2, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: 759d6c64eadd0244eb752fb65642d6d2, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 759d6c64eadd0244eb752fb65642d6d2, type: 3} +--- !u!4 &910552774 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: 759d6c64eadd0244eb752fb65642d6d2, + type: 3} + m_PrefabInstance: {fileID: 910552773} + m_PrefabAsset: {fileID: 0} +--- !u!1 &910552775 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4346727374823546882, guid: 759d6c64eadd0244eb752fb65642d6d2, + type: 3} + m_PrefabInstance: {fileID: 910552773} + m_PrefabAsset: {fileID: 0} +--- !u!114 &910552776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 910552775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 55d2a03c26a364a49b2850b0705b1405, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &936855748 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 936855749} + - component: {fileID: 936855753} + - component: {fileID: 936855752} + - component: {fileID: 936855751} + - component: {fileID: 936855750} + m_Layer: 0 + m_Name: Pointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &936855749 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 936855748} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 401948470} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &936855750 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 936855748} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1635b72d7d6a16d4e84ec56b9be68b48, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_PhysicsCastDistance: 100 + m_PhysicsEventMask: + serializedVersion: 2 + m_Bits: 4294967295 + s_GraphicTags: [] + m_PointerRingWidth: 0.005 + m_PointerCircleRadius: 0.005 + m_PointerDistance: 1 + m_PointerColor: {r: 1, g: 1, b: 1, a: 1} + m_ProgressColor: {r: 0, g: 245, b: 255, a: 1} + m_PointerMaterial: {fileID: 0} + m_PointerRenderQueue: 5000 + m_PointerSortingOrder: 32767 + m_TimeToGaze: 1.5 + m_InputEvent: 0 + m_ControlKey: + m_Primary2DAxisClick: 1 + m_TriggerButton: 1 + State: + StateEx: + m_UseInputAction: 0 + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: f6aebce9-9a25-4054-8439-2ad5254b19af + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_AlwaysEnable: 1 +--- !u!20 &936855751 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 936855748} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!33 &936855752 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 936855748} + m_Mesh: {fileID: 0} +--- !u!23 &936855753 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 936855748} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &1106490257 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1106490258} + - component: {fileID: 1106490260} + - component: {fileID: 1106490259} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1106490258 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1106490257} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 631772906} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1106490259 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1106490257} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 24 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Switch Panels +--- !u!222 &1106490260 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1106490257} + m_CullTransparentMesh: 0 +--- !u!1 &1141251791 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1141251792} + m_Layer: 0 + m_Name: TrackerCanvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1141251792 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1141251791} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 10, z: 30} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 318141941} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1290577106 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1290577107} + - component: {fileID: 1290577110} + - component: {fileID: 1290577109} + - component: {fileID: 1290577108} + m_Layer: 5 + m_Name: Acceleration + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1290577107 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1290577106} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 788277381} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -340} + m_SizeDelta: {x: 750, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1290577108 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1290577106} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bc64dbb0feba26349871cc8e3154532c, type: 3} + m_Name: + m_EditorClassIdentifier: + TextFor: 7 +--- !u!114 &1290577109 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1290577106} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 30 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Acceleration:' +--- !u!222 &1290577110 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1290577106} + m_CullTransparentMesh: 0 +--- !u!1 &1460812013 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1460812014} + - component: {fileID: 1460812015} + m_Layer: 0 + m_Name: Tracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1460812014 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1460812013} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 910552774} + m_Father: {fileID: 814493289} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1460812015 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1460812013} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7dd3b5817f4169447b37c9cb3a5c5ce9, type: 3} + m_Name: + m_EditorClassIdentifier: + poseMarkerTemplate: {fileID: 910552775} +--- !u!1 &1487550844 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1487550845} + - component: {fileID: 1487550848} + - component: {fileID: 1487550847} + - component: {fileID: 1487550846} + m_Layer: 5 + m_Name: Velocity + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1487550845 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1487550844} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 788277381} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -310} + m_SizeDelta: {x: 750, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1487550846 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1487550844} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bc64dbb0feba26349871cc8e3154532c, type: 3} + m_Name: + m_EditorClassIdentifier: + TextFor: 5 +--- !u!114 &1487550847 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1487550844} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 30 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Velocity:' +--- !u!222 &1487550848 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1487550844} + m_CullTransparentMesh: 0 +--- !u!1 &1506594675 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1506594676} + - component: {fileID: 1506594678} + - component: {fileID: 1506594677} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1506594676 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506594675} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1937098290} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1506594677 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506594675} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 24 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Disable Tracker +--- !u!222 &1506594678 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506594675} + m_CullTransparentMesh: 0 +--- !u!1 &1532664865 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1532664866} + - component: {fileID: 1532664869} + - component: {fileID: 1532664868} + - component: {fileID: 1532664867} + - component: {fileID: 1532664870} + m_Layer: 5 + m_Name: BtnQuit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1532664866 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532664865} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_Children: + - {fileID: 1829799447} + m_Father: {fileID: 318141941} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 20, y: -20} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1532664867 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532664865} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0, g: 0.9607844, b: 1, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1532664868} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1532664870} + m_MethodName: ExitGame + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1532664868 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532664865} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1532664869 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532664865} + m_CullTransparentMesh: 0 +--- !u!114 &1532664870 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532664865} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ee9b3153fead842458f8ee62e4d82232, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1642807543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1642807544} + - component: {fileID: 1642807547} + - component: {fileID: 1642807546} + - component: {fileID: 1642807545} + m_Layer: 5 + m_Name: Press + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1642807544 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1642807543} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 788277381} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -410} + m_SizeDelta: {x: 750, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1642807545 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1642807543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bc64dbb0feba26349871cc8e3154532c, type: 3} + m_Name: + m_EditorClassIdentifier: + TextFor: 9 +--- !u!114 &1642807546 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1642807543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 30 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Press:' +--- !u!222 &1642807547 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1642807543} + m_CullTransparentMesh: 0 +--- !u!1 &1668099567 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1668099568} + - component: {fileID: 1668099571} + - component: {fileID: 1668099570} + - component: {fileID: 1668099569} + m_Layer: 5 + m_Name: Battery + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1668099568 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1668099567} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 788277381} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -460} + m_SizeDelta: {x: 750, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1668099569 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1668099567} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bc64dbb0feba26349871cc8e3154532c, type: 3} + m_Name: + m_EditorClassIdentifier: + TextFor: 10 +--- !u!114 &1668099570 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1668099567} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 30 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Battery:' +--- !u!222 &1668099571 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1668099567} + m_CullTransparentMesh: 0 +--- !u!1 &1829799446 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1829799447} + - component: {fileID: 1829799449} + - component: {fileID: 1829799448} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1829799447 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1829799446} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1532664866} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1829799448 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1829799446} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 24 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Quit Scene +--- !u!222 &1829799449 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1829799446} + m_CullTransparentMesh: 0 +--- !u!1 &1833648964 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1833648965} + - component: {fileID: 1833648968} + - component: {fileID: 1833648967} + - component: {fileID: 1833648966} + m_Layer: 5 + m_Name: Role + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1833648965 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1833648964} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 788277381} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -110} + m_SizeDelta: {x: 750, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1833648966 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1833648964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bc64dbb0feba26349871cc8e3154532c, type: 3} + m_Name: + m_EditorClassIdentifier: + TextFor: 1 +--- !u!114 &1833648967 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1833648964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 30 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Role:' +--- !u!222 &1833648968 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1833648964} + m_CullTransparentMesh: 0 +--- !u!1 &1847747288 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1847747289} + - component: {fileID: 1847747292} + - component: {fileID: 1847747291} + - component: {fileID: 1847747290} + m_Layer: 5 + m_Name: Connection + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1847747289 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1847747288} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 788277381} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -160} + m_SizeDelta: {x: 750, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1847747290 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1847747288} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bc64dbb0feba26349871cc8e3154532c, type: 3} + m_Name: + m_EditorClassIdentifier: + TextFor: 2 +--- !u!114 &1847747291 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1847747288} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 30 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Connection:' +--- !u!222 &1847747292 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1847747288} + m_CullTransparentMesh: 0 +--- !u!1 &1937098289 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1937098290} + - component: {fileID: 1937098293} + - component: {fileID: 1937098292} + - component: {fileID: 1937098291} + m_Layer: 5 + m_Name: BtnTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1937098290 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1937098289} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_Children: + - {fileID: 1506594676} + m_Father: {fileID: 318141941} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1937098291 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1937098289} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0, g: 0.9607844, b: 1, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1937098292} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1460812015} + m_MethodName: EnableTracker + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 1506594677} + m_ObjectArgumentAssemblyTypeName: UnityEngine.UI.Text, UnityEngine.UI + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1937098292 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1937098289} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1937098293 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1937098289} + m_CullTransparentMesh: 0 +--- !u!1 &2101234208 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2101234209} + - component: {fileID: 2101234212} + - component: {fileID: 2101234211} + - component: {fileID: 2101234210} + m_Layer: 5 + m_Name: AngularAcc + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2101234209 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2101234208} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 788277381} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -380} + m_SizeDelta: {x: 750, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2101234210 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2101234208} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bc64dbb0feba26349871cc8e3154532c, type: 3} + m_Name: + m_EditorClassIdentifier: + TextFor: 8 +--- !u!114 &2101234211 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2101234208} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 30 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'AngularAcc:' +--- !u!222 &2101234212 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2101234208} + m_CullTransparentMesh: 0 diff --git a/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/TrackersXR.unity.meta b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/TrackersXR.unity.meta new file mode 100644 index 00000000..8461c892 --- /dev/null +++ b/com.htc.upm.wave.xrsdk/Samples~/XR/XR/Tracker/TrackersXR.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e99ab302b220581438562f42a5b964e2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.wave.xrsdk/UnityPackages~/wave_xrsdk_androidmanifest.unitypackage b/com.htc.upm.wave.xrsdk/UnityPackages~/wave_xrsdk_androidmanifest.unitypackage index 73e49963..848578cb 100644 --- a/com.htc.upm.wave.xrsdk/UnityPackages~/wave_xrsdk_androidmanifest.unitypackage +++ b/com.htc.upm.wave.xrsdk/UnityPackages~/wave_xrsdk_androidmanifest.unitypackage @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5b0da509710051661b83f464ab3d3ae1415d9d0274efc035441af71a061271dc -size 3500 +oid sha256:8343cadafd57b812577cc8e3a9b7334183a4d588ea09a551596b79ba99833e7d +size 3498 diff --git a/com.htc.upm.wave.xrsdk/package.json b/com.htc.upm.wave.xrsdk/package.json index 8720fd34..a334b2d2 100644 --- a/com.htc.upm.wave.xrsdk/package.json +++ b/com.htc.upm.wave.xrsdk/package.json @@ -1,7 +1,7 @@ { "name": "com.htc.upm.wave.xrsdk", "displayName": "VIVE Wave XR Plugin", - "version": "5.4.0-r.8", + "version": "5.5.0-r.10", "unity": "2019.4", "description": "The \"VIVE Wave XR Plugin\" package serves as a bridge between VIVE moblile devices and Unity.\nBy communicuating with Unity's \"XR Plugin Management\" package, this package allows your application to run on VIVE mobile devices.\n\nView the documentation for additional information.\n\n", "keywords": [ diff --git a/com.htc.upm.wave.xrsdk/package.tm1 b/com.htc.upm.wave.xrsdk/package.tm1 index baa4492c..49282cde 100644 --- a/com.htc.upm.wave.xrsdk/package.tm1 +++ b/com.htc.upm.wave.xrsdk/package.tm1 @@ -1,7 +1,7 @@ { "name": "com.htc.upm.wave.xrsdk", "displayName": "VIVE Wave XR Plugin", - "version": "5.4.0-preview.0", + "version": "5.5.0-preview.0", "unity": "2019.4", "description": "The \u0022VIVE Wave XR Plugin\u0022 package serves as a bridge between VIVE moblile devices and Unity.\nBy communicuating with Unity's \u0022XR Plugin Management\u0022 package, this package allows your application to run on VIVE mobile devices.\n\nView the documentation for additional information.\n\n", "keywords": [ diff --git a/com.htc.upm.wave.xrsdk/package.tm1.meta b/com.htc.upm.wave.xrsdk/package.tm1.meta index b9f4e1f9..a60a014b 100644 --- a/com.htc.upm.wave.xrsdk/package.tm1.meta +++ b/com.htc.upm.wave.xrsdk/package.tm1.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f6366719b94ed4f4bae46a9afb65a356 +guid: f0aacacc81b3ff547b25ab02833517aa DefaultImporter: externalObjects: {} userData: