diff --git a/Nreal/Assets/NRSDK/Demos/Config/SessionConfig_Demo.asset b/Nreal/Assets/NRSDK/Demos/Config/SessionConfig_Demo.asset index 214a6495..e14cf971 100644 --- a/Nreal/Assets/NRSDK/Demos/Config/SessionConfig_Demo.asset +++ b/Nreal/Assets/NRSDK/Demos/Config/SessionConfig_Demo.asset @@ -21,4 +21,4 @@ MonoBehaviour: type: 3} TrackingModeChangeTipPrefab: {fileID: 114429345346749554, guid: 03ffa16cba025c844b778902a3170680, type: 3} - UseMultiThread: 1 + ProjectConfig: {fileID: 11400000, guid: c66f5f1413c2e471aa0c410731aa0a78, type: 2} diff --git a/Nreal/Assets/NRSDK/Demos/HelloMR/Scripts/ChangeModeController.cs b/Nreal/Assets/NRSDK/Demos/HelloMR/Scripts/ChangeModeController.cs index 53577098..79872c69 100644 --- a/Nreal/Assets/NRSDK/Demos/HelloMR/Scripts/ChangeModeController.cs +++ b/Nreal/Assets/NRSDK/Demos/HelloMR/Scripts/ChangeModeController.cs @@ -15,6 +15,7 @@ public class ChangeModeController : MonoBehaviour { public void ChangeTo0Dof() { + var hmdPoseTracker = NRSessionManager.Instance.NRHMDPoseTracker; NRSessionManager.Instance.NRHMDPoseTracker.ChangeTo0Dof((result) => { NRDebugger.Info("[ChangeModeController] ChangeTo0Dof result:" + result.success); @@ -28,10 +29,6 @@ public void ChangeTo3Dof() NRSessionManager.Instance.NRHMDPoseTracker.ChangeTo3Dof((result) => { NRDebugger.Info("[ChangeModeController] ChangeTo3Dof result:" + result.success); - if (result.success) - { - hmdPoseTracker.CacheWorldMatrix(); - } }); } @@ -41,10 +38,6 @@ public void ChangeTo6Dof() NRSessionManager.Instance.NRHMDPoseTracker.ChangeTo6Dof((result) => { NRDebugger.Info("[ChangeModeController] ChangeTo6Dof result:" + result.success); - if (result.success) - { - hmdPoseTracker.CacheWorldMatrix(); - } }); } } diff --git a/Nreal/Assets/NRSDK/Demos/HelloMR/Scripts/GetSurportedFeatures.cs b/Nreal/Assets/NRSDK/Demos/HelloMR/Scripts/GetSurportedFeatures.cs index 2533a984..1924633c 100644 --- a/Nreal/Assets/NRSDK/Demos/HelloMR/Scripts/GetSurportedFeatures.cs +++ b/Nreal/Assets/NRSDK/Demos/HelloMR/Scripts/GetSurportedFeatures.cs @@ -15,6 +15,8 @@ public class GetSurportedFeatures : MonoBehaviour { void Start() { + var deviceType = NRDevice.Subsystem.GetDeviceType(); + bool tracking_six_dof = NRDevice.Subsystem.IsFeatureSupported(NRSupportedFeature.NR_FEATURE_TRACKING_6DOF); bool tracking_three_dof = NRDevice.Subsystem.IsFeatureSupported(NRSupportedFeature.NR_FEATURE_TRACKING_3DOF); bool tracking_plane_horizontal = NRDevice.Subsystem.IsFeatureSupported(NRSupportedFeature.NR_FEATURE_TRACKING_FINDING_HORIZONTAL_PLANE); @@ -26,10 +28,10 @@ void Start() bool handtracking = NRDevice.Subsystem.IsFeatureSupported(NRSupportedFeature.NR_FEATURE_HANDTRACKING); bool rgbcamera = NRDevice.Subsystem.IsFeatureSupported(NRSupportedFeature.NR_FEATURE_RGB_CAMERA); - NRDebugger.Info("tracking_six_dof:{0} tracking_three_dof:{1} tracking_plane_horizontal:{2} tracking_plane_vertical:{3}" + + NRDebugger.Info("deviceType:{10}, tracking_six_dof:{0} tracking_three_dof:{1} tracking_plane_horizontal:{2} tracking_plane_vertical:{3}" + "tracking_imagetracking:{4} controller_three_dof:{5} controller_six_dof:{6} glasses_wearing_status:{7} handtracking:{8} rgbcamera:{9}", tracking_six_dof, tracking_three_dof, tracking_plane_horizontal, tracking_plane_vertical, tracking_imagetracking, controller_three_dof, - controller_six_dof, glasses_wearing_status, handtracking, rgbcamera); + controller_six_dof, glasses_wearing_status, handtracking, rgbcamera, deviceType); } } } diff --git a/Nreal/Assets/NRSDK/Demos/Input/Scripts/NRInteractiveItem.cs b/Nreal/Assets/NRSDK/Demos/Input/Scripts/NRInteractiveItem.cs new file mode 100644 index 00000000..598bc7e6 --- /dev/null +++ b/Nreal/Assets/NRSDK/Demos/Input/Scripts/NRInteractiveItem.cs @@ -0,0 +1,37 @@ +/**************************************************************************** +* Copyright 2019 Nreal Techonology Limited. All rights reserved. +* +* This file is part of NRSDK. +* +* https://www.nreal.ai/ +* +*****************************************************************************/ + +namespace NRKernal.NRExamples +{ + using UnityEngine; + using UnityEngine.Events; + using UnityEngine.EventSystems; + + public class NRInteractiveItem : MonoBehaviour, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler + { + public UnityEvent onPointerClick; + public UnityEvent onPointerEnter; + public UnityEvent onPointerOut; + + public void OnPointerClick(PointerEventData eventData) + { + onPointerClick?.Invoke(); + } + + public void OnPointerEnter(PointerEventData eventData) + { + onPointerEnter?.Invoke(); + } + + public void OnPointerExit(PointerEventData eventData) + { + onPointerOut?.Invoke(); + } + } +} diff --git a/Nreal/Assets/NRSDK/Demos/Input/Scripts/NRInteractiveItem.cs.meta b/Nreal/Assets/NRSDK/Demos/Input/Scripts/NRInteractiveItem.cs.meta new file mode 100644 index 00000000..7f786f0d --- /dev/null +++ b/Nreal/Assets/NRSDK/Demos/Input/Scripts/NRInteractiveItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 91140b6176cd2cb448b41c07d3da4c85 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Nreal/Assets/NRSDK/Demos/RGBCamera-Record.unity b/Nreal/Assets/NRSDK/Demos/RGBCamera-Record.unity index 4bfda160..519377f2 100644 --- a/Nreal/Assets/NRSDK/Demos/RGBCamera-Record.unity +++ b/Nreal/Assets/NRSDK/Demos/RGBCamera-Record.unity @@ -50,7 +50,6 @@ LightmapSettings: m_BounceScale: 1 m_IndirectOutputScale: 1 m_AlbedoBoost: 1 - m_TemporalCoherenceThreshold: 1 m_EnvironmentLightingMode: 0 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 @@ -117,7 +116,8 @@ NavMeshSettings: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 6390214} @@ -137,7 +137,8 @@ GameObject: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6390210} m_Enabled: 1 m_EditorHideFlags: 0 @@ -149,7 +150,8 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6390210} m_Enabled: 1 m_EditorHideFlags: 0 @@ -170,7 +172,8 @@ MonoBehaviour: Canvas: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6390210} m_Enabled: 1 serializedVersion: 3 @@ -190,7 +193,8 @@ Canvas: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6390210} m_LocalRotation: {x: 0.2574595, y: -0, z: -0, w: 0.9662891} m_LocalPosition: {x: 0, y: 0, z: 0.629} @@ -210,7 +214,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6390210} m_Enabled: 1 m_EditorHideFlags: 0 @@ -223,8 +228,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -233,18 +236,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &6390216 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6390210} m_CullTransparentMesh: 0 --- !u!1 &41130023 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 41130024} @@ -260,7 +266,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 41130023} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -280,7 +287,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 41130023} m_Enabled: 1 m_EditorHideFlags: 0 @@ -318,14 +326,13 @@ MonoBehaviour: onValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_IsOn: 0 --- !u!1 &67777523 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 67777524} @@ -340,7 +347,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 67777523} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -358,13 +366,15 @@ RectTransform: --- !u!224 &101183889 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} - m_PrefabInternal: {fileID: 1678538247} + type: 3} + m_PrefabInstance: {fileID: 1678538247} + m_PrefabAsset: {fileID: 0} --- !u!1 &139412606 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 139412607} @@ -379,7 +389,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 139412606} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -398,7 +409,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 186913274} @@ -416,7 +428,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 186913273} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: -0.000027474016} @@ -437,7 +450,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 186913273} m_Enabled: 1 m_EditorHideFlags: 0 @@ -482,13 +496,12 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.Dropdown+DropdownEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!114 &186913276 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 186913273} m_Enabled: 1 m_EditorHideFlags: 0 @@ -501,8 +514,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -511,18 +522,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &186913277 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 186913273} m_CullTransparentMesh: 0 --- !u!1 &256162209 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 256162210} @@ -539,7 +553,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 256162209} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -557,7 +572,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 256162209} m_Enabled: 1 m_EditorHideFlags: 0 @@ -570,8 +586,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -580,18 +594,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &256162212 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 256162209} m_CullTransparentMesh: 0 --- !u!1 &262048904 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 262048905} @@ -606,7 +623,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 262048904} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -625,7 +643,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 273796020} @@ -642,7 +661,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 273796019} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -660,7 +680,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 273796019} m_Enabled: 1 m_EditorHideFlags: 0 @@ -673,8 +694,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 10 @@ -693,14 +712,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 273796019} m_CullTransparentMesh: 0 --- !u!1 &303855260 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 303855261} @@ -716,7 +737,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 303855260} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -736,7 +758,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 303855260} m_Enabled: 1 m_EditorHideFlags: 0 @@ -752,7 +775,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 322782919} @@ -769,7 +793,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 322782918} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -787,7 +812,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 322782918} m_Enabled: 1 m_EditorHideFlags: 0 @@ -800,8 +826,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -820,14 +844,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 322782918} m_CullTransparentMesh: 0 --- !u!1 &358345796 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 358345797} @@ -844,7 +870,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 358345796} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -862,7 +889,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 358345796} m_Enabled: 1 m_EditorHideFlags: 0 @@ -875,8 +903,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} m_Type: 0 m_PreserveAspect: 0 @@ -885,69 +911,71 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &358345799 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 358345796} m_CullTransparentMesh: 0 --- !u!1001 &365313932 -Prefab: +PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 4808320353365586, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 2} + - target: {fileID: 1581093954426074, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4808320353365586, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4808320353365586, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 2} + - target: {fileID: 4808320353365586, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4808320353365586, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 2} + - target: {fileID: 4808320353365586, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4808320353365586, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 2} + - target: {fileID: 4808320353365586, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4808320353365586, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 2} + - target: {fileID: 4808320353365586, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4808320353365586, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 2} + - target: {fileID: 4808320353365586, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4808320353365586, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 2} + - target: {fileID: 4808320353365586, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 4808320353365586, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 2} + - target: {fileID: 4808320353365586, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - target: {fileID: 114189359072911506, guid: ad152f08ed7eb6e4abd93376a0203e38, - type: 2} + type: 3} propertyPath: m_OverrideCameraCenter value: objectReference: {fileID: 444365360} - - target: {fileID: 1581093954426074, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 2} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 2} - m_IsPrefabAsset: 0 + m_SourcePrefab: {fileID: 100100000, guid: ad152f08ed7eb6e4abd93376a0203e38, type: 3} --- !u!1 &371664640 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 371664641} @@ -964,7 +992,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 371664640} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -982,7 +1011,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 371664640} m_Enabled: 1 m_EditorHideFlags: 0 @@ -995,8 +1025,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10915, guid: 0000000000000000f000000000000000, type: 0} m_Type: 0 m_PreserveAspect: 0 @@ -1005,151 +1033,153 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &371664643 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 371664640} m_CullTransparentMesh: 0 --- !u!1001 &414117917 -Prefab: +PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 4131315785955196, guid: b76c07b35799f964b88ea24bca4cbb08, type: 2} + - target: {fileID: 1341636462457712, guid: b76c07b35799f964b88ea24bca4cbb08, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4131315785955196, guid: b76c07b35799f964b88ea24bca4cbb08, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4131315785955196, guid: b76c07b35799f964b88ea24bca4cbb08, type: 2} + - target: {fileID: 4131315785955196, guid: b76c07b35799f964b88ea24bca4cbb08, type: 3} propertyPath: m_LocalPosition.y value: -0.15 objectReference: {fileID: 0} - - target: {fileID: 4131315785955196, guid: b76c07b35799f964b88ea24bca4cbb08, type: 2} + - target: {fileID: 4131315785955196, guid: b76c07b35799f964b88ea24bca4cbb08, type: 3} propertyPath: m_LocalPosition.z value: 1 objectReference: {fileID: 0} - - target: {fileID: 4131315785955196, guid: b76c07b35799f964b88ea24bca4cbb08, type: 2} + - target: {fileID: 4131315785955196, guid: b76c07b35799f964b88ea24bca4cbb08, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 4131315785955196, guid: b76c07b35799f964b88ea24bca4cbb08, type: 2} + - target: {fileID: 4131315785955196, guid: b76c07b35799f964b88ea24bca4cbb08, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 4131315785955196, guid: b76c07b35799f964b88ea24bca4cbb08, type: 2} + - target: {fileID: 4131315785955196, guid: b76c07b35799f964b88ea24bca4cbb08, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 4131315785955196, guid: b76c07b35799f964b88ea24bca4cbb08, type: 2} + - target: {fileID: 4131315785955196, guid: b76c07b35799f964b88ea24bca4cbb08, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 4131315785955196, guid: b76c07b35799f964b88ea24bca4cbb08, type: 2} + - target: {fileID: 4131315785955196, guid: b76c07b35799f964b88ea24bca4cbb08, type: 3} propertyPath: m_RootOrder value: 2 objectReference: {fileID: 0} - - target: {fileID: 1341636462457712, guid: b76c07b35799f964b88ea24bca4cbb08, type: 2} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: b76c07b35799f964b88ea24bca4cbb08, type: 2} - m_IsPrefabAsset: 0 + m_SourcePrefab: {fileID: 100100000, guid: b76c07b35799f964b88ea24bca4cbb08, type: 3} --- !u!1001 &444365359 -Prefab: +PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 4275651716754104, guid: 665d8158924bd2648a94fb3f87691bbb, type: 2} + - target: {fileID: 1449425198145754, guid: 665d8158924bd2648a94fb3f87691bbb, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1668515225578100, guid: 665d8158924bd2648a94fb3f87691bbb, type: 3} + propertyPath: m_Name + value: NRCameraRig + objectReference: {fileID: 0} + - target: {fileID: 1713578656367708, guid: 665d8158924bd2648a94fb3f87691bbb, type: 3} + propertyPath: m_TagString + value: Untagged + objectReference: {fileID: 0} + - target: {fileID: 1831472376678662, guid: 665d8158924bd2648a94fb3f87691bbb, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4275651716754104, guid: 665d8158924bd2648a94fb3f87691bbb, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4275651716754104, guid: 665d8158924bd2648a94fb3f87691bbb, type: 2} + - target: {fileID: 4275651716754104, guid: 665d8158924bd2648a94fb3f87691bbb, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4275651716754104, guid: 665d8158924bd2648a94fb3f87691bbb, type: 2} + - target: {fileID: 4275651716754104, guid: 665d8158924bd2648a94fb3f87691bbb, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4275651716754104, guid: 665d8158924bd2648a94fb3f87691bbb, type: 2} + - target: {fileID: 4275651716754104, guid: 665d8158924bd2648a94fb3f87691bbb, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4275651716754104, guid: 665d8158924bd2648a94fb3f87691bbb, type: 2} + - target: {fileID: 4275651716754104, guid: 665d8158924bd2648a94fb3f87691bbb, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4275651716754104, guid: 665d8158924bd2648a94fb3f87691bbb, type: 2} + - target: {fileID: 4275651716754104, guid: 665d8158924bd2648a94fb3f87691bbb, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4275651716754104, guid: 665d8158924bd2648a94fb3f87691bbb, type: 2} + - target: {fileID: 4275651716754104, guid: 665d8158924bd2648a94fb3f87691bbb, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 4275651716754104, guid: 665d8158924bd2648a94fb3f87691bbb, type: 2} + - target: {fileID: 4275651716754104, guid: 665d8158924bd2648a94fb3f87691bbb, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 1668515225578100, guid: 665d8158924bd2648a94fb3f87691bbb, type: 2} - propertyPath: m_Name - value: NRCameraRig - objectReference: {fileID: 0} - - target: {fileID: 114378715144848742, guid: 665d8158924bd2648a94fb3f87691bbb, - type: 2} - propertyPath: SessionConfig - value: - objectReference: {fileID: 11400000, guid: 27d90d2c2ddcd074ca3e384fea9d08ca, - type: 2} - - target: {fileID: 4529309942957008, guid: 665d8158924bd2648a94fb3f87691bbb, type: 2} + - target: {fileID: 4347012660897428, guid: 665d8158924bd2648a94fb3f87691bbb, type: 3} propertyPath: m_RootOrder - value: 1 + value: 3 objectReference: {fileID: 0} - - target: {fileID: 4347012660897428, guid: 665d8158924bd2648a94fb3f87691bbb, type: 2} + - target: {fileID: 4529309942957008, guid: 665d8158924bd2648a94fb3f87691bbb, type: 3} propertyPath: m_RootOrder - value: 3 + value: 1 objectReference: {fileID: 0} - target: {fileID: 20787554590591570, guid: 665d8158924bd2648a94fb3f87691bbb, - type: 2} + type: 3} propertyPath: m_CullingMask.m_Bits value: 4294967295 objectReference: {fileID: 0} - target: {fileID: 20850121355348172, guid: 665d8158924bd2648a94fb3f87691bbb, - type: 2} + type: 3} propertyPath: m_CullingMask.m_Bits value: 4294967295 objectReference: {fileID: 0} - - target: {fileID: 1713578656367708, guid: 665d8158924bd2648a94fb3f87691bbb, type: 2} - propertyPath: m_TagString - value: Untagged - objectReference: {fileID: 0} - - target: {fileID: 1831472376678662, guid: 665d8158924bd2648a94fb3f87691bbb, type: 2} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1449425198145754, guid: 665d8158924bd2648a94fb3f87691bbb, type: 2} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} + - target: {fileID: 114378715144848742, guid: 665d8158924bd2648a94fb3f87691bbb, + type: 3} + propertyPath: SessionConfig + value: + objectReference: {fileID: 11400000, guid: 27d90d2c2ddcd074ca3e384fea9d08ca, + type: 2} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 665d8158924bd2648a94fb3f87691bbb, type: 2} - m_IsPrefabAsset: 0 + m_SourcePrefab: {fileID: 100100000, guid: 665d8158924bd2648a94fb3f87691bbb, type: 3} --- !u!4 &444365360 stripped Transform: m_CorrespondingSourceObject: {fileID: 4154700624755278, guid: 665d8158924bd2648a94fb3f87691bbb, - type: 2} - m_PrefabInternal: {fileID: 444365359} + type: 3} + m_PrefabInstance: {fileID: 444365359} + m_PrefabAsset: {fileID: 0} --- !u!1 &542030394 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 542030395} @@ -1166,7 +1196,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 542030394} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1184,7 +1215,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 542030394} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1197,8 +1229,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 0} m_Type: 0 m_PreserveAspect: 0 @@ -1207,18 +1237,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &542030397 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 542030394} m_CullTransparentMesh: 0 --- !u!1 &676536569 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 676536570} @@ -1236,7 +1269,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 676536569} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1255,7 +1289,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 676536569} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1268,8 +1303,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1278,18 +1311,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &676536572 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 676536569} m_CullTransparentMesh: 0 --- !u!114 &676536573 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 676536569} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1301,7 +1337,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 768449754} @@ -1316,7 +1353,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 768449753} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1335,7 +1373,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 790564192} @@ -1353,7 +1392,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 790564191} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1372,7 +1412,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 790564191} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1385,8 +1426,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1395,18 +1434,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &790564194 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 790564191} m_CullTransparentMesh: 0 --- !u!114 &790564195 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 790564191} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1417,13 +1459,15 @@ MonoBehaviour: --- !u!1 &892906113 stripped GameObject: m_CorrespondingSourceObject: {fileID: 1341636462457712, guid: b76c07b35799f964b88ea24bca4cbb08, - type: 2} - m_PrefabInternal: {fileID: 414117917} + type: 3} + m_PrefabInstance: {fileID: 414117917} + m_PrefabAsset: {fileID: 0} --- !u!114 &892906114 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 892906113} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1434,7 +1478,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 943535074} @@ -1452,7 +1497,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 943535073} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1471,7 +1517,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 943535073} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1511,13 +1558,12 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!114 &943535076 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 943535073} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1530,8 +1576,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1540,18 +1584,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &943535077 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 943535073} m_CullTransparentMesh: 0 --- !u!1 &958152262 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 958152263} @@ -1568,7 +1615,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 958152262} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1586,7 +1634,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 958152262} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1599,8 +1648,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -1619,14 +1666,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 958152262} m_CullTransparentMesh: 0 --- !u!1 &985770672 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 985770673} @@ -1643,7 +1692,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 985770672} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1661,7 +1711,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 985770672} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1674,8 +1725,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 10 @@ -1694,14 +1743,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 985770672} m_CullTransparentMesh: 0 --- !u!1 &1006767853 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1006767854} @@ -1718,7 +1769,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1006767853} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1736,7 +1788,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1006767853} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1749,8 +1802,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} m_Type: 0 m_PreserveAspect: 0 @@ -1759,18 +1810,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1006767856 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1006767853} m_CullTransparentMesh: 0 --- !u!1 &1010740052 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1010740053} @@ -1785,7 +1839,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1010740052} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1804,7 +1859,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1073271724} @@ -1821,7 +1877,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1073271723} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1839,7 +1896,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1073271723} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1852,8 +1910,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -1872,14 +1928,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1073271723} m_CullTransparentMesh: 0 --- !u!1 &1102884538 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1102884539} @@ -1897,7 +1955,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1102884538} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1917,7 +1976,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1102884538} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1942,13 +2002,12 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!114 &1102884541 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1102884538} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1961,8 +2020,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1971,18 +2028,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1102884542 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1102884538} m_CullTransparentMesh: 0 --- !u!1 &1133598640 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1133598641} @@ -2000,7 +2060,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1133598640} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: -0.000043849766} @@ -2021,7 +2082,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1133598640} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2066,13 +2128,12 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.Dropdown+DropdownEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!114 &1133598643 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1133598640} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2085,8 +2146,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2095,18 +2154,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1133598644 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1133598640} m_CullTransparentMesh: 0 --- !u!1 &1168017131 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1168017133} @@ -2122,7 +2184,8 @@ GameObject: Light: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1168017131} m_Enabled: 1 serializedVersion: 8 @@ -2159,7 +2222,8 @@ Light: Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1168017131} m_LocalRotation: {x: 0.42817298, y: -0.20697899, z: 0.10101473, w: 0.87385565} m_LocalPosition: {x: 0, y: 0.276, z: 0} @@ -2172,7 +2236,8 @@ Transform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1168264641} @@ -2188,7 +2253,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1168264640} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2209,7 +2275,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1168264640} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2247,14 +2314,13 @@ MonoBehaviour: onValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_IsOn: 1 --- !u!1 &1207126291 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1207126292} @@ -2272,7 +2338,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1207126291} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: -0.000027474016} @@ -2293,7 +2360,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1207126291} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2338,13 +2406,12 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.Dropdown+DropdownEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!114 &1207126294 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1207126291} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2357,8 +2424,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2367,18 +2432,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1207126295 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1207126291} m_CullTransparentMesh: 0 --- !u!1 &1245113308 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1245113309} @@ -2395,7 +2463,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1245113308} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2413,7 +2482,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1245113308} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2426,8 +2496,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 0} m_Type: 0 m_PreserveAspect: 0 @@ -2436,18 +2504,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1245113311 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1245113308} m_CullTransparentMesh: 0 --- !u!1 &1343496712 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1343496713} @@ -2464,7 +2535,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1343496712} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2483,7 +2555,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1343496712} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2496,8 +2569,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2506,18 +2577,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1343496715 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1343496712} m_CullTransparentMesh: 0 --- !u!1 &1434065972 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1434065973} @@ -2534,7 +2608,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1434065972} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2552,7 +2627,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1434065972} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2565,8 +2641,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2575,18 +2649,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1434065975 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1434065972} m_CullTransparentMesh: 0 --- !u!1 &1434842814 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1434842815} @@ -2603,7 +2680,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1434842814} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2621,7 +2699,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1434842814} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2634,8 +2713,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -2654,14 +2731,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1434842814} m_CullTransparentMesh: 0 --- !u!1 &1439057444 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1439057445} @@ -2679,7 +2758,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1439057444} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2699,7 +2779,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1439057444} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2724,13 +2805,12 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!114 &1439057447 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1439057444} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2743,8 +2823,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2753,18 +2831,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1439057448 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1439057444} m_CullTransparentMesh: 0 --- !u!1 &1456910282 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1456910283} @@ -2781,7 +2862,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1456910282} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2799,7 +2881,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1456910282} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2812,8 +2895,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} m_Type: 0 m_PreserveAspect: 0 @@ -2822,18 +2903,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1456910285 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1456910282} m_CullTransparentMesh: 0 --- !u!1 &1531938583 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1531938584} @@ -2850,7 +2934,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1531938583} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2868,7 +2953,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1531938583} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2881,8 +2967,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} m_Type: 0 m_PreserveAspect: 0 @@ -2891,18 +2975,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1531938586 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1531938583} m_CullTransparentMesh: 0 --- !u!1 &1535458002 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1535458003} @@ -2917,7 +3004,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1535458002} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2936,7 +3024,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1555879981} @@ -2952,7 +3041,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1555879980} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2973,7 +3063,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1555879980} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3011,14 +3102,13 @@ MonoBehaviour: onValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_IsOn: 1 --- !u!1 &1594509979 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1594509980} @@ -3035,7 +3125,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1594509979} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3053,7 +3144,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1594509979} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3066,8 +3158,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 10 @@ -3086,14 +3176,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1594509979} m_CullTransparentMesh: 0 --- !u!1 &1649352496 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1649352497} @@ -3110,7 +3202,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1649352496} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3128,7 +3221,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1649352496} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3141,8 +3235,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10915, guid: 0000000000000000f000000000000000, type: 0} m_Type: 0 m_PreserveAspect: 0 @@ -3151,18 +3243,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1649352499 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1649352496} m_CullTransparentMesh: 0 --- !u!1 &1657074381 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1657074382} @@ -3179,7 +3274,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1657074381} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3197,7 +3293,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1657074381} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3210,8 +3307,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 18 @@ -3230,120 +3325,127 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1657074381} m_CullTransparentMesh: 0 --- !u!1001 &1678538247 -Prefab: +PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 1795951943} m_Modifications: - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_LocalPosition.z value: 10 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_AnchoredPosition.x value: 50.792 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_AnchoredPosition.y value: 49 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_SizeDelta.x value: 192 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_SizeDelta.y value: 108 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - target: {fileID: 224310998581552222, guid: 1cf02312f745518428339a24394b3af6, - type: 2} + type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 1cf02312f745518428339a24394b3af6, type: 2} - m_IsPrefabAsset: 0 + m_SourcePrefab: {fileID: 100100000, guid: 1cf02312f745518428339a24394b3af6, type: 3} --- !u!114 &1678538248 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 114277577031506288, guid: 1cf02312f745518428339a24394b3af6, - type: 2} - m_PrefabInternal: {fileID: 1678538247} + type: 3} + m_PrefabInstance: {fileID: 1678538247} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 13ea05e40b1284949aa807b8a246226d, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1728194577 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1728194578} @@ -3358,7 +3460,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1728194577} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3377,7 +3480,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1744443288} @@ -3394,7 +3498,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1744443287} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3412,7 +3517,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1744443287} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3425,8 +3531,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 0} m_Type: 0 m_PreserveAspect: 0 @@ -3435,18 +3539,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1744443290 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1744443287} m_CullTransparentMesh: 0 --- !u!1 &1795951941 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1795951943} @@ -3462,7 +3569,8 @@ GameObject: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1795951941} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3475,14 +3583,15 @@ MonoBehaviour: resolutionLevel: 1 cullingMask: serializedVersion: 2 - m_Bits: 4294967295 + m_Bits: 2871 audioState: 1 useGreenBackGround: 0 --- !u!4 &1795951943 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1795951941} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3497,7 +3606,8 @@ Transform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1815384544} @@ -3514,7 +3624,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1815384543} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3532,7 +3643,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1815384543} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3545,8 +3657,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -3555,18 +3665,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1815384546 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1815384543} m_CullTransparentMesh: 0 --- !u!1 &1856438470 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1856438471} @@ -3584,7 +3697,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1856438470} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3603,7 +3717,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1856438470} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3649,13 +3764,12 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!114 &1856438473 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1856438470} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3668,8 +3782,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 21300000, guid: 83c344015ffa1b049bd8841c4d3b7ac8, type: 3} m_Type: 0 m_PreserveAspect: 0 @@ -3678,18 +3790,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1856438474 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1856438470} m_CullTransparentMesh: 0 --- !u!1 &1862375688 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1862375689} @@ -3706,7 +3821,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1862375688} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3724,7 +3840,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1862375688} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3737,8 +3854,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10915, guid: 0000000000000000f000000000000000, type: 0} m_Type: 0 m_PreserveAspect: 0 @@ -3747,18 +3862,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1862375691 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1862375688} m_CullTransparentMesh: 0 --- !u!1 &1899837417 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1899837418} @@ -3774,7 +3892,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1899837417} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3795,7 +3914,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1899837417} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3833,14 +3953,13 @@ MonoBehaviour: onValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_IsOn: 1 --- !u!1 &1914313748 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1914313749} @@ -3858,7 +3977,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1914313748} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3877,7 +3997,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1914313748} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3917,13 +4038,12 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!114 &1914313751 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1914313748} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3936,8 +4056,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -3946,18 +4064,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1914313752 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1914313748} m_CullTransparentMesh: 0 --- !u!1 &1993165147 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1993165148} @@ -3975,7 +4096,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1993165147} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3994,7 +4116,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1993165147} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4007,8 +4130,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -4017,18 +4138,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &1993165150 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1993165147} m_CullTransparentMesh: 0 --- !u!114 &1993165151 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1993165147} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4040,7 +4164,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 2007770641} @@ -4058,7 +4183,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2007770640} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4077,7 +4203,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2007770640} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4117,13 +4244,12 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!114 &2007770643 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2007770640} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4136,8 +4262,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -4146,18 +4270,21 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &2007770644 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2007770640} m_CullTransparentMesh: 0 --- !u!1 &2025434833 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 2025434834} @@ -4173,7 +4300,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2025434833} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4194,7 +4322,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2025434833} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4217,7 +4346,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 2052455917} @@ -4235,7 +4365,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2052455916} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4255,7 +4386,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2052455916} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4280,13 +4412,12 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!114 &2052455919 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2052455916} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4299,8 +4430,6 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -4309,10 +4438,12 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!222 &2052455920 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2052455916} m_CullTransparentMesh: 0 diff --git a/Nreal/Assets/NRSDK/Demos/Record/Materials.meta b/Nreal/Assets/NRSDK/Demos/Record/Materials.meta new file mode 100644 index 00000000..4f5b10e9 --- /dev/null +++ b/Nreal/Assets/NRSDK/Demos/Record/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3767f951599d4484b8c5dfb3ebd4f063 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Nreal/Assets/NRSDK/Demos/Record/Materials/MatVideo.mat b/Nreal/Assets/NRSDK/Demos/Record/Materials/MatVideo.mat new file mode 100644 index 00000000..baf8d1a5 --- /dev/null +++ b/Nreal/Assets/NRSDK/Demos/Record/Materials/MatVideo.mat @@ -0,0 +1,76 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: MatVideo + m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Nreal/Assets/NRSDK/Demos/Record/Materials/MatVideo.mat.meta b/Nreal/Assets/NRSDK/Demos/Record/Materials/MatVideo.mat.meta new file mode 100644 index 00000000..85c158d9 --- /dev/null +++ b/Nreal/Assets/NRSDK/Demos/Record/Materials/MatVideo.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4915485245ee64a26bb2d8bb09496f9b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Nreal/Assets/NRSDK/Demos/Record/Scripts/PhotoCaptureExample.cs b/Nreal/Assets/NRSDK/Demos/Record/Scripts/PhotoCaptureExample.cs index 464bd472..8e6053d7 100644 --- a/Nreal/Assets/NRSDK/Demos/Record/Scripts/PhotoCaptureExample.cs +++ b/Nreal/Assets/NRSDK/Demos/Record/Scripts/PhotoCaptureExample.cs @@ -58,6 +58,7 @@ void Create(Action onCreated) cameraParameters.cameraResolutionWidth = m_CameraResolution.width; cameraParameters.cameraResolutionHeight = m_CameraResolution.height; cameraParameters.pixelFormat = CapturePixelFormat.BGRA32; + cameraParameters.frameRate = NativeConstants.RECORD_FPS_DEFAULT; cameraParameters.blendMode = BlendMode.Blend; // Activate the camera @@ -74,7 +75,7 @@ void Create(Action onCreated) this.Close(); NRDebugger.Error("Start PhotoMode faild." + result.resultType); } - }); + }, true); }); } diff --git a/Nreal/Assets/NRSDK/Demos/Record/Scripts/VideoCapture2LocalExample.cs b/Nreal/Assets/NRSDK/Demos/Record/Scripts/VideoCapture2LocalExample.cs index 67340c88..9038dde0 100644 --- a/Nreal/Assets/NRSDK/Demos/Record/Scripts/VideoCapture2LocalExample.cs +++ b/Nreal/Assets/NRSDK/Demos/Record/Scripts/VideoCapture2LocalExample.cs @@ -119,7 +119,7 @@ public void StartVideoCapture() // Add it to your "AndroidManifest.xml" file in "Assets/Plugin". cameraParameters.audioState = audioState; - m_VideoCapture.StartVideoModeAsync(cameraParameters, OnStartedVideoCaptureMode); + m_VideoCapture.StartVideoModeAsync(cameraParameters, OnStartedVideoCaptureMode, true); } private Resolution GetResolutionByLevel(ResolutionLevel level) diff --git a/Nreal/Assets/NRSDK/Editor/NRStubHelper.cs b/Nreal/Assets/NRSDK/Editor/NRStubHelper.cs new file mode 100644 index 00000000..df8759fd --- /dev/null +++ b/Nreal/Assets/NRSDK/Editor/NRStubHelper.cs @@ -0,0 +1,27 @@ +/**************************************************************************** +* Copyright 2019 Nreal Techonology Limited. All rights reserved. +* +* This file is part of NRSDK. +* +* https://www.nreal.ai/ +* +*****************************************************************************/ + +using UnityEngine; +using UnityEditor; +using System; + +public class NRStubHelper : ScriptableObject +{ + // Stub helper class to locate NReal Utilities Path through Unity Editor API. + public static bool IsInsideUnityPackage() + { + var so = ScriptableObject.CreateInstance(typeof(NRStubHelper)); + var script = MonoScript.FromScriptableObject(so); + string assetPath = AssetDatabase.GetAssetPath(script); + if (assetPath.StartsWith("Packages\\", StringComparison.InvariantCultureIgnoreCase) || + assetPath.StartsWith("Packages/", StringComparison.InvariantCultureIgnoreCase)) + return true; + return false; + } +} diff --git a/Nreal/Assets/NRSDK/Editor/NRStubHelper.cs.meta b/Nreal/Assets/NRSDK/Editor/NRStubHelper.cs.meta new file mode 100644 index 00000000..b9c4dfbe --- /dev/null +++ b/Nreal/Assets/NRSDK/Editor/NRStubHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e1c20b712464740c582ffae78813e803 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Nreal/Assets/NRSDK/Editor/Scripts/AndroidGradleTemplate.cs b/Nreal/Assets/NRSDK/Editor/Scripts/AndroidGradleTemplate.cs new file mode 100644 index 00000000..8372c714 --- /dev/null +++ b/Nreal/Assets/NRSDK/Editor/Scripts/AndroidGradleTemplate.cs @@ -0,0 +1,94 @@ +/**************************************************************************** +* Copyright 2019 Nreal Techonology Limited.All rights reserved. +* +* This file is part of NRSDK. +* +* https://www.nreal.ai/ +* +*****************************************************************************/ + +namespace NRKernal +{ + using System; + using System.Text; + using System.Xml; + using System.IO; + using System.Collections.Generic; + using UnityEngine; + + /// A list of the android. + internal class AndroidGradleTemplate + { + string m_Path; + public AndroidGradleTemplate(string path) + { + m_Path = path; + } + + public bool SetGradlePluginVersion() + { + string[] lines; + try + { + lines = File.ReadAllLines(m_Path); + string[] modifyLines = new string[lines.Length]; + bool modify = false; + string gradleToolToken = "com.android.tools.build:gradle:"; + for (int i = 0; i < lines.Length; i++) + { + string line = lines[i]; + // var trimedLine = line.Trim(); + var idx = line.IndexOf(gradleToolToken); + if (idx > 0) + { + string subLine = line.Substring(idx + gradleToolToken.Length); + string subVersion = subLine.Substring(0, subLine.IndexOf('\'')); + Debug.LogFormat("subVersion : {0}", subVersion); + + string[] versions = subVersion.Split('.'); + if (versions.Length == 3) + { + int vMain = 0; + int vMiddle = 0; + int vMin = 0; + int.TryParse(versions[0], out vMain); + int.TryParse(versions[1], out vMiddle); + int.TryParse(versions[2], out vMin); + bool updateVersion = false; + /// update version before 3.4.3 + if (vMain < 4) + { + if (vMain < 3) + updateVersion = true; + else if (vMiddle < 4) + updateVersion = true; + else if (vMiddle == 4 && vMin < 3) + updateVersion = true; + } + + if (updateVersion) + { + modify = true; + line = line.Replace(subVersion, "3.4.3"); + Debug.LogFormat("update gradle setting : {0} --> {1}", subVersion, "3.4.3"); + } + } + } + + modifyLines[i] = line; + } + + if (modify) + File.WriteAllLines(m_Path, modifyLines); + } + catch (Exception ex) + { + Debug.LogErrorFormat("SetGradlePluginVersion exception : {0}", ex.Message); + return false; + } + + return true; + } + } + +} diff --git a/Nreal/Assets/NRSDK/Editor/Scripts/AndroidGradleTemplate.cs.meta b/Nreal/Assets/NRSDK/Editor/Scripts/AndroidGradleTemplate.cs.meta new file mode 100644 index 00000000..f0ca3bd4 --- /dev/null +++ b/Nreal/Assets/NRSDK/Editor/Scripts/AndroidGradleTemplate.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1612c2a6be79549eb9fd447dd369de74 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Nreal/Assets/NRSDK/Editor/Scripts/AndroidManifest.cs b/Nreal/Assets/NRSDK/Editor/Scripts/AndroidManifest.cs index 95e56de8..e1856d45 100644 --- a/Nreal/Assets/NRSDK/Editor/Scripts/AndroidManifest.cs +++ b/Nreal/Assets/NRSDK/Editor/Scripts/AndroidManifest.cs @@ -177,8 +177,8 @@ internal void SetBlueToothPermission() manifest.AppendChild(child); XmlAttribute newAttribute = CreateAndroidAttribute("name", "android.permission.BLUETOOTH"); child.Attributes.Append(newAttribute); - newAttribute = CreateAndroidAttribute("name", "android.permission.BLUETOOTH_ADMIN"); - child.Attributes.Append(newAttribute); + // newAttribute = CreateAndroidAttribute("name", "android.permission.BLUETOOTH_ADMIN"); + // child.Attributes.Append(newAttribute); } //else //{ @@ -202,15 +202,16 @@ internal void SetAudioRecordPermission() internal void SetSDKMetaData() { var activity = SelectSingleNode("/manifest/application"); - var rightmetaData = SelectSingleNode("/manifest/application/meta-data[@android:name='nreal_sdk' and " + - "@android:value='true']", nameSpaceManager); - var wrongmetaData = SelectSingleNode("/manifest/application/meta-data[@android:name='nreal_sdk']", nameSpaceManager); - if (rightmetaData == null) + // metadata for "nreal_sdk + var newMetaNRSDK = SelectSingleNode("/manifest/application/meta-data[@android:name='nreal_sdk' and " + + "@android:value='true']", nameSpaceManager); + var oldMetaNRSDK = SelectSingleNode("/manifest/application/meta-data[@android:name='nreal_sdk']", nameSpaceManager); + if (newMetaNRSDK == null) { - if (wrongmetaData != null) + if (oldMetaNRSDK != null) { - activity.RemoveChild(wrongmetaData); + activity.RemoveChild(oldMetaNRSDK); } XmlElement child = CreateElement("meta-data"); activity.AppendChild(child); @@ -220,10 +221,24 @@ internal void SetSDKMetaData() newAttribute = CreateAndroidAttribute("value", "true"); child.Attributes.Append(newAttribute); } - //else - //{ - // NRDebugger.Info("Already has the sdk meta data."); - //} + + // metadata for "com.nreal.supportDevices" + string supportDevices = NRProjectConfigHelper.GetProjectConfig().GetTargetDeviceTypesDesc(); + var newMetaDevices = SelectSingleNode("/manifest/application/meta-data[@android:name='com.nreal.supportDevices' and " + + "@android:value='']", nameSpaceManager); + var oldMetaDevices = SelectSingleNode("/manifest/application/meta-data[@android:name='com.nreal.supportDevices']", nameSpaceManager); + if (oldMetaDevices != null) + activity.RemoveChild(oldMetaDevices); + if (newMetaDevices == null) + { + XmlElement child = CreateElement("meta-data"); + activity.AppendChild(child); + + XmlAttribute newAttribute = CreateAndroidAttribute("name", "com.nreal.supportDevices"); + child.Attributes.Append(newAttribute); + newAttribute = CreateAndroidAttribute("value", supportDevices); + child.Attributes.Append(newAttribute); + } } /// Sets a pk displayed on launcher. diff --git a/Nreal/Assets/NRSDK/Editor/Scripts/Inspector.meta b/Nreal/Assets/NRSDK/Editor/Scripts/Inspector.meta new file mode 100644 index 00000000..09701b07 --- /dev/null +++ b/Nreal/Assets/NRSDK/Editor/Scripts/Inspector.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 92731816e9dc4468dbcf448795a6154e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRProjectConfigEditor.cs b/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRProjectConfigEditor.cs new file mode 100644 index 00000000..a4ad89bd --- /dev/null +++ b/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRProjectConfigEditor.cs @@ -0,0 +1,50 @@ +/**************************************************************************** +* Copyright 2019 Nreal Techonology Limited. All rights reserved. +* +* This file is part of NRSDK. +* +* https://www.nreal.ai/ +* +*****************************************************************************/ +using UnityEngine; +using UnityEditor; +using NRKernal; + +[CustomEditor(typeof(NRProjectConfig))] +public class NRProjectConfigEditor : Editor +{ + override public void OnInspectorGUI() + { + NRProjectConfig projectConfig = (NRProjectConfig)target; + DrawTargetDevice(projectConfig); + EditorGUILayout.Space(); + } + + public static void DrawTargetDevice(NRProjectConfig projectConfig) + { + EditorGUILayout.LabelField("Target Devices", EditorStyles.boldLabel); + bool modify = false; + foreach (NRDeviceType deviceType in System.Enum.GetValues(typeof(NRDeviceType))) + { + bool curSupport = projectConfig.targetDeviceTypes.Contains(deviceType); + bool newSupport = curSupport; + NREditorUtility.BoolField(projectConfig, ObjectNames.NicifyVariableName(deviceType.ToString()), ref newSupport, ref modify); + + if (newSupport && !curSupport) + { + projectConfig.targetDeviceTypes.Add(deviceType); + modify = true; + } + else if (curSupport && !newSupport) + { + projectConfig.targetDeviceTypes.Remove(deviceType); + modify = true; + } + } + + if (modify) + { + NRProjectConfigHelper.CommitProjectConfig(projectConfig); + } + } +} \ No newline at end of file diff --git a/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRProjectConfigEditor.cs.meta b/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRProjectConfigEditor.cs.meta new file mode 100644 index 00000000..2c8bca44 --- /dev/null +++ b/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRProjectConfigEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 751b3c2756cae458c9ad1a984c8fc84f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRSessionBehaviourEditor.cs b/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRSessionBehaviourEditor.cs new file mode 100644 index 00000000..50fe7acd --- /dev/null +++ b/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRSessionBehaviourEditor.cs @@ -0,0 +1,45 @@ +/**************************************************************************** +* Copyright 2019 Nreal Techonology Limited. All rights reserved. +* +* This file is part of NRSDK. +* +* https://www.nreal.ai/ +* +*****************************************************************************/ +using UnityEngine; +using UnityEditor; + +namespace NRKernal +{ + [CustomEditor(typeof(NRSessionBehaviour))] + public class NRSessionBehaviourEditor : Editor + { + SerializedProperty LogLevel; + SerializedProperty SessionConfig; + + private void OnEnable() + { + // Setup the SerializedProperties + LogLevel = serializedObject.FindProperty("LogLevel"); + SessionConfig = serializedObject.FindProperty("SessionConfig"); + } + override public void OnInspectorGUI() + { + NRSessionBehaviour sessionBehav = (NRSessionBehaviour)target; + serializedObject.Update(); + + EditorGUILayout.PropertyField(LogLevel); + EditorGUILayout.PropertyField(SessionConfig); + + EditorGUILayout.Space(); + + // if (GUILayout.Button("Open NRSDK Configuration")) + // { + // Selection.activeObject = NRProjectConfigHelper.GetProjectConfig(); + // } + + // Apply values to the target + serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRSessionBehaviourEditor.cs.meta b/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRSessionBehaviourEditor.cs.meta new file mode 100644 index 00000000..c5e607b8 --- /dev/null +++ b/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRSessionBehaviourEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 99a0a603b456d4b1e9eb0eaceca4e121 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRSessionConfigEditor.cs b/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRSessionConfigEditor.cs new file mode 100644 index 00000000..c2f9022a --- /dev/null +++ b/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRSessionConfigEditor.cs @@ -0,0 +1,62 @@ +/**************************************************************************** +* Copyright 2019 Nreal Techonology Limited. All rights reserved. +* +* This file is part of NRSDK. +* +* https://www.nreal.ai/ +* +*****************************************************************************/ +using UnityEngine; +using UnityEditor; + +namespace NRKernal +{ + [CustomEditor(typeof(NRSessionConfig))] + public class NRSessionConfigEditor : Editor + { + SerializedProperty PlaneFindingMode; + SerializedProperty ImageTrackingMode; + SerializedProperty TrackingImageDatabase; + SerializedProperty EnableNotification; + SerializedProperty GlassesErrorTipPrefab; + SerializedProperty TrackingModeChangeTipPrefab; + SerializedProperty ProjectConfig; + + private void OnEnable() + { + NRSessionConfig sessionConfig = (NRSessionConfig)target; + sessionConfig.SetProjectConfig(NRProjectConfigHelper.GetProjectConfig()); + + // Setup the SerializedProperties + PlaneFindingMode = serializedObject.FindProperty("PlaneFindingMode"); + ImageTrackingMode = serializedObject.FindProperty("ImageTrackingMode"); + TrackingImageDatabase = serializedObject.FindProperty("TrackingImageDatabase"); + EnableNotification = serializedObject.FindProperty("EnableNotification"); + GlassesErrorTipPrefab = serializedObject.FindProperty("GlassesErrorTipPrefab"); + TrackingModeChangeTipPrefab = serializedObject.FindProperty("TrackingModeChangeTipPrefab"); + ProjectConfig = serializedObject.FindProperty("ProjectConfig"); + } + override public void OnInspectorGUI() + { + NRSessionConfig sessionConfig = (NRSessionConfig)target; + serializedObject.Update(); + + // EditorGUILayout.PropertyField(ProjectConfig); + NRProjectConfig projectConfig = NRProjectConfigHelper.GetProjectConfig(); + NRProjectConfigEditor.DrawTargetDevice(projectConfig); + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField(PlaneFindingMode); + EditorGUILayout.PropertyField(ImageTrackingMode); + EditorGUILayout.PropertyField(TrackingImageDatabase); + EditorGUILayout.PropertyField(EnableNotification); + + EditorGUILayout.Space(); + EditorGUILayout.PropertyField(GlassesErrorTipPrefab); + EditorGUILayout.PropertyField(TrackingModeChangeTipPrefab); + + // Apply values to the target + serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRSessionConfigEditor.cs.meta b/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRSessionConfigEditor.cs.meta new file mode 100644 index 00000000..115c0974 --- /dev/null +++ b/Nreal/Assets/NRSDK/Editor/Scripts/Inspector/NRSessionConfigEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4c83c621ec28848c7a2878811ad65e0e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Nreal/Assets/NRSDK/Editor/Scripts/NRProjectConfigHelper.cs b/Nreal/Assets/NRSDK/Editor/Scripts/NRProjectConfigHelper.cs new file mode 100644 index 00000000..78d9f695 --- /dev/null +++ b/Nreal/Assets/NRSDK/Editor/Scripts/NRProjectConfigHelper.cs @@ -0,0 +1,113 @@ +/**************************************************************************** +* Copyright 2019 Nreal Techonology Limited. All rights reserved. +* +* This file is part of NRSDK. +* +* https://www.nreal.ai/ +* +*****************************************************************************/ + +namespace NRKernal +{ + using System; + using System.IO; + using System.Collections.Generic; + using UnityEditor; + using UnityEngine; + using LitJson; + +#if UNITY_EDITOR + [UnityEditor.InitializeOnLoad] +#endif + public static class NRProjectConfigHelper + { + static NRProjectConfigHelper() + { + EditorApplication.update += OnceUpdate; + } + + static void OnceUpdate() + { + var projectConfig = GetProjectConfig(); + // Avoid to import asset while beginning to run application in editor. + if (!Application.isPlaying) + ApplyProjectConfigToSessionConfig(projectConfig); + EditorApplication.update -= OnceUpdate; + } + + // Load projectConfig from default path, if it doesnot exist, create the asset. + public static NRProjectConfig GetProjectConfig() + { + NRProjectConfig projectConfig = null; + string projectConfigAssetPath = GetProjectConfigAssetPath(); + try + { + projectConfig = AssetDatabase.LoadAssetAtPath(projectConfigAssetPath, typeof(NRProjectConfig)) as NRProjectConfig; + } + catch (System.Exception e) + { + NRDebugger.Warning("Unable to load NRProjectConfig from {0}, error {1}", projectConfigAssetPath, e.Message); + } + // BuildPipeline.isBuildingPlayer cannot be called in static constructor + if (projectConfig == null && !BuildPipeline.isBuildingPlayer) + { + projectConfig = ScriptableObject.CreateInstance(); + projectConfig.targetDeviceTypes = new List(); + projectConfig.targetDeviceTypes.Add(NRDeviceType.NrealLight); + projectConfig.targetDeviceTypes.Add(NRDeviceType.NrealAir); + AssetDatabase.CreateAsset(projectConfig, projectConfigAssetPath); + } + return projectConfig; + } + + public static void CommitProjectConfig(NRProjectConfig projectConfig) + { + string projectConfigAssetPath = GetProjectConfigAssetPath(); + string customConfigAssetPath = AssetDatabase.GetAssetPath(projectConfig); + if (customConfigAssetPath != projectConfigAssetPath) + { + NRDebugger.Warning("The asset path of NRProjectConfig is legal only for: {0}, error path: {1}", projectConfigAssetPath, customConfigAssetPath); + } + EditorUtility.SetDirty(projectConfig); + } + + private static string GetProjectConfigAssetPath() + { + var so = ScriptableObject.CreateInstance(typeof(NRStubHelper)); + var script = MonoScript.FromScriptableObject(so); + string assetPath = AssetDatabase.GetAssetPath(script); + string editorDir = Directory.GetParent(assetPath).FullName; + string nrsdkDir = Directory.GetParent(editorDir).FullName; + + if (NRStubHelper.IsInsideUnityPackage()) + { + nrsdkDir = Path.GetFullPath(Path.Combine(Application.dataPath, "NRSDK")); + if (!Directory.Exists(nrsdkDir)) + { + Directory.CreateDirectory(nrsdkDir); + } + } + + string configAssetPath = Path.GetFullPath(Path.Combine(nrsdkDir, "NRProjectConfig.asset")); + Uri configUri = new Uri(configAssetPath); + Uri projectUri = new Uri(Application.dataPath); + Uri relativeUri = projectUri.MakeRelativeUri(configUri); + + return relativeUri.ToString(); + } + + public static void ApplyProjectConfigToSessionConfig(NRProjectConfig projectConfig) + { + var sessionConfigGuids = AssetDatabase.FindAssets("t:NRSessionConfig"); + foreach (var item in sessionConfigGuids) + { + var sessionConfig = AssetDatabase.LoadAssetAtPath( + AssetDatabase.GUIDToAssetPath(item)); + sessionConfig.SetProjectConfig(projectConfig); + EditorUtility.SetDirty(sessionConfig); + } + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + } + } +} diff --git a/Nreal/Assets/NRSDK/Editor/Scripts/NRProjectConfigHelper.cs.meta b/Nreal/Assets/NRSDK/Editor/Scripts/NRProjectConfigHelper.cs.meta new file mode 100644 index 00000000..3b59472b --- /dev/null +++ b/Nreal/Assets/NRSDK/Editor/Scripts/NRProjectConfigHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b8774889165de46cd820cab0a9abf91b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Nreal/Assets/NRSDK/Editor/Scripts/PreprocessBuildBase.cs b/Nreal/Assets/NRSDK/Editor/Scripts/PreprocessBuildBase.cs index 17a6d1d9..5ba032df 100644 --- a/Nreal/Assets/NRSDK/Editor/Scripts/PreprocessBuildBase.cs +++ b/Nreal/Assets/NRSDK/Editor/Scripts/PreprocessBuildBase.cs @@ -88,10 +88,9 @@ public virtual void OnPreprocessBuild(BuildTarget target, string path) + - - "; @@ -124,19 +123,23 @@ public static void OnPreprocessBuildForAndroid() } AutoGenerateAndroidManifest(xmlPath); - AssetDatabase.Refresh(); ApplySettingsToConfig(); + AutoGenerateAndroidGradleTemplate(); + AssetDatabase.Refresh(); } private static void ApplySettingsToConfig() { + NRProjectConfig projectConfig = NRProjectConfigHelper.GetProjectConfig(); + var sessionConfigGuids = AssetDatabase.FindAssets("t:NRSessionConfig"); foreach (var item in sessionConfigGuids) { var config = AssetDatabase.LoadAssetAtPath( AssetDatabase.GUIDToAssetPath(item)); - config.UseMultiThread = PlayerSettings.GetMobileMTRendering(BuildTargetGroup.Android); + config.SetUseMultiThread(PlayerSettings.GetMobileMTRendering(BuildTargetGroup.Android)); + config.SetProjectConfig(projectConfig); EditorUtility.SetDirty(config); } AssetDatabase.SaveAssets(); @@ -159,7 +162,7 @@ public static void AutoGenerateAndroidManifest(string path) var androidManifest = new AndroidManifest(path); //bool needrequestLegacyExternalStorage = (GetAndroidTargetApiLevel() >= 29); //androidManifest.SetExternalStorage(needrequestLegacyExternalStorage); - androidManifest.SetPackageReadPermission(); + // androidManifest.SetPackageReadPermission(); //androidManifest.SetCameraPermission(); androidManifest.SetBlueToothPermission(); androidManifest.SetSDKMetaData(); @@ -197,14 +200,49 @@ public static int GetAndroidTargetApiLevel() } } - //public void OnPostGenerateGradleAndroidProject(string basePath) - //{ - // var pathBuilder = new StringBuilder(basePath); - // pathBuilder.Append(Path.DirectorySeparatorChar).Append("src"); - // pathBuilder.Append(Path.DirectorySeparatorChar).Append("main"); - // pathBuilder.Append(Path.DirectorySeparatorChar).Append("AndroidManifest.xml"); - // NRDebugger.Error("OnPostGenerateGradleAndroidProject:" + pathBuilder.ToString()); - // AutoGenerateAndroidManifest(pathBuilder.ToString()); - //} + /// In order to support 'queries' in manifest, gradle plugin must be higher than 3.4.3. + /// For unity version lower than 2020, this can be modified by using 'Custom Gradle Template', then modify the gradle plugin version in template file + public static void AutoGenerateAndroidGradleTemplate() + { + string version = Application.unityVersion; + Debug.Log("UnityVersion: " + version); + string vMain = version.Substring(0, 4); + int nVersion = 0; + int.TryParse(vMain, out nVersion); + if (nVersion < 2018) + Debug.LogErrorFormat("NRSDK require unity version higher than 2018"); + else if (nVersion == 2018) + AutoGenerateAndroidGradleTemplate("mainTemplate.gradle"); + else if (nVersion == 2019) + AutoGenerateAndroidGradleTemplate("baseProjectTemplate.gradle"); + } + + + private static void AutoGenerateAndroidGradleTemplate(string templateFileName) + { + string gradleInProject = Application.dataPath + "/Plugins/Android/" + templateFileName; + if (!File.Exists(gradleInProject)) + { + string unityEditorPath = EditorApplication.applicationPath; + + string gradleReletPath = "/PlaybackEngines/AndroidPlayer/Tools/GradleTemplates/" + templateFileName; +#if UNITY_EDITOR_WIN + gradleReletPath = "/data" + gradleReletPath; +#endif + string gradleFullPath = unityEditorPath.Substring(0, unityEditorPath.LastIndexOf("/")) + gradleReletPath; + Debug.LogFormat("Copy gradle template : {0} --> {1}", gradleFullPath, gradleInProject); + + if (File.Exists(gradleFullPath)) + File.Copy(gradleFullPath, gradleInProject); + else + { + Debug.LogErrorFormat("GradleTemplate of unity not found : {0}", gradleFullPath); + return; + } + } + + AndroidGradleTemplate gradleTmp = new AndroidGradleTemplate(gradleInProject); + gradleTmp.SetGradlePluginVersion(); + } } } \ No newline at end of file diff --git a/Nreal/Assets/NRSDK/Editor/Scripts/ProjectTipsWindow.cs b/Nreal/Assets/NRSDK/Editor/Scripts/ProjectTipsWindow.cs index 1cff2e86..1ea9cad3 100644 --- a/Nreal/Assets/NRSDK/Editor/Scripts/ProjectTipsWindow.cs +++ b/Nreal/Assets/NRSDK/Editor/Scripts/ProjectTipsWindow.cs @@ -83,6 +83,47 @@ protected void DrawContent(string title, string message) } } + /// A ckeck for buildTarget . + private class CkeckBuildTargetAndroid : Check + { + /// Default constructor. + public CkeckBuildTargetAndroid(MessageType level) : base(level) + { + _key = this.GetType().Name; + } + + /// Query if this object is valid. + /// True if valid, false if not. + public override bool IsValid() + { + return EditorUserBuildSettings.activeBuildTarget == BuildTarget.Android; + } + + /// Draw graphical user interface. + public override void DrawGUI() + { + string message = @"In order to develop on NRSDK, BuildTarget must be set to Android. +in panel of Player Settings, choose 'Androi' in platform list, and click 'Switch Platform' button."; + DrawContent("BuildTarget is Android", message); + } + + /// Query if this object is fixable. + /// True if fixable, false if not. + public override bool IsFixable() + { + return true; + } + + /// Fixes this object. + public override void Fix() + { + if (EditorUserBuildSettings.activeBuildTarget != BuildTarget.Android) + { + EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.Android, BuildTarget.Android); + } + } + } + /// A ckeck android vsyn. private class CkeckAndroidVsyn : Check { @@ -562,9 +603,47 @@ public static void FixedXRProviderPlugin(string key, string version) } } + /// A ckeck that android build system is gradle. + private class CkeckAndroidBuildGradle: Check + { + /// Default constructor. + public CkeckAndroidBuildGradle(MessageType level) : base(level) + { + _key = this.GetType().Name; + } + + /// Query if this object is valid. + /// True if valid, false if not. + public override bool IsValid() + { + return EditorUserBuildSettings.androidBuildSystem == AndroidBuildSystem.Gradle; + } + + /// Draw graphical user interface. + public override void DrawGUI() + { + string message = @""; + DrawContent("Gradle plugin is valid", message); + } + + /// Query if this object is fixable. + /// True if fixable, false if not. + public override bool IsFixable() + { + return true; + } + + /// Fixes this object. + public override void Fix() + { + EditorUserBuildSettings.androidBuildSystem = AndroidBuildSystem.Gradle; + } + } + /// The checks. private static Check[] checks = new Check[] { + new CkeckBuildTargetAndroid(MessageType.Error), new CkeckAndroidVsyn(MessageType.Error), new CkeckAndroidMinAPILevel(MessageType.Error), //new CkeckAndroidSDCardPermission(), @@ -574,6 +653,7 @@ public static void FixedXRProviderPlugin(string key, string version) #if USING_XR_SDK new CkeckDependency(MessageType.Error) #endif + new CkeckAndroidBuildGradle(MessageType.Error), //new CkeckColorSpace(Level.Error), }; @@ -587,7 +667,6 @@ public static void FixedXRProviderPlugin(string key, string version) static ProjectTipsWindow() { EditorApplication.update -= Update; - EditorApplication.update += Update; } /// Shows the window. diff --git a/Nreal/Assets/NRSDK/Editor/Scripts/Utility/EditorGUIUtility.cs b/Nreal/Assets/NRSDK/Editor/Scripts/Utility/EditorGUIUtility.cs new file mode 100644 index 00000000..c82f7ba2 --- /dev/null +++ b/Nreal/Assets/NRSDK/Editor/Scripts/Utility/EditorGUIUtility.cs @@ -0,0 +1,25 @@ +using UnityEngine; +using UnityEditor; +using System.Diagnostics; + +public static class NREditorUtility +{ + [Conditional("UNITY_EDITOR_WIN"), Conditional("UNITY_STANDALONE_WIN"), Conditional("UNITY_ANDROID")] + public static void BoolField(Object target, string name, ref bool member, ref bool modified) + { + BoolField(target, new GUIContent(name), ref member, ref modified); + } + + [Conditional("UNITY_EDITOR_WIN"), Conditional("UNITY_STANDALONE_WIN"), Conditional("UNITY_ANDROID")] + public static void BoolField(Object target, GUIContent name, ref bool member, ref bool modified) + { + EditorGUI.BeginChangeCheck(); + bool value = EditorGUILayout.Toggle(name, member); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Changed " + name); + member = value; + modified = true; + } + } +} \ No newline at end of file diff --git a/Nreal/Assets/NRSDK/Editor/Scripts/Utility/EditorGUIUtility.cs.meta b/Nreal/Assets/NRSDK/Editor/Scripts/Utility/EditorGUIUtility.cs.meta new file mode 100644 index 00000000..6f210e65 --- /dev/null +++ b/Nreal/Assets/NRSDK/Editor/Scripts/Utility/EditorGUIUtility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bf6ca8d4c198542de8869ac2a75fd82f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Nreal/Assets/NRSDK/Models/Hands/HandJoint/SphereJoint.prefab b/Nreal/Assets/NRSDK/Models/Hands/HandJoint/SphereJoint.prefab index 299a2841..c2609cbd 100644 --- a/Nreal/Assets/NRSDK/Models/Hands/HandJoint/SphereJoint.prefab +++ b/Nreal/Assets/NRSDK/Models/Hands/HandJoint/SphereJoint.prefab @@ -1,11 +1,21 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 0} + m_RootGameObject: {fileID: 1292187076706152} + m_IsPrefabAsset: 1 --- !u!1 &1292187076706152 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} serializedVersion: 6 m_Component: - component: {fileID: 4590301643461410} @@ -19,12 +29,28 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!1 &1943492813550636 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 4610044817108114} + - component: {fileID: 33924752770114610} + - component: {fileID: 23420751684691154} + m_Layer: 0 + m_Name: Axis + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!4 &4590301643461410 Transform: - m_ObjectHideFlags: 0 + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 1292187076706152} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -34,34 +60,35 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &33618516296970838 -MeshFilter: - m_ObjectHideFlags: 0 +--- !u!4 &4610044817108114 +Transform: + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1292187076706152} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &23594847399696500 + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1943492813550636} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.12, y: 0.12, z: 0.12} + m_Children: [] + m_Father: {fileID: 4590301643461410} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &23420751684691154 MeshRenderer: - m_ObjectHideFlags: 0 + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1292187076706152} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1943492813550636} m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 + m_CastShadows: 1 + m_ReceiveShadows: 1 m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 4294967295 - m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 80c308f79a5ad3c489687e70fcff316b, type: 2} + - {fileID: 2100000, guid: 83533d396a6e3a042a637f7a7c198d6f, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -69,7 +96,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -82,80 +108,22 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!135 &135550654450833540 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1292187076706152} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 0 - serializedVersion: 2 - m_Radius: 0.5 - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &1943492813550636 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4610044817108114} - - component: {fileID: 33924752770114610} - - component: {fileID: 23420751684691154} - m_Layer: 0 - m_Name: Axis - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &4610044817108114 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1943492813550636} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.12, y: 0.12, z: 0.12} - m_Children: [] - m_Father: {fileID: 4590301643461410} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &33924752770114610 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1943492813550636} - m_Mesh: {fileID: 4300000, guid: 3c735a14671f45b438734f07c7774f29, type: 3} ---- !u!23 &23420751684691154 +--- !u!23 &23594847399696500 MeshRenderer: - m_ObjectHideFlags: 0 + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1943492813550636} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1292187076706152} m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 4294967295 - m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 83533d396a6e3a042a637f7a7c198d6f, type: 2} + - {fileID: 2100000, guid: 80c308f79a5ad3c489687e70fcff316b, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -163,7 +131,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -176,4 +143,29 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &33618516296970838 +MeshFilter: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1292187076706152} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33924752770114610 +MeshFilter: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1943492813550636} + m_Mesh: {fileID: 4300000, guid: 3c735a14671f45b438734f07c7774f29, type: 3} +--- !u!135 &135550654450833540 +SphereCollider: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1292187076706152} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 0 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} diff --git a/Nreal/Assets/NRSDK/NRKernalSessionConfig.asset b/Nreal/Assets/NRSDK/NRKernalSessionConfig.asset index a495512f..c4df29ba 100644 --- a/Nreal/Assets/NRSDK/NRKernalSessionConfig.asset +++ b/Nreal/Assets/NRSDK/NRKernalSessionConfig.asset @@ -21,4 +21,4 @@ MonoBehaviour: type: 3} TrackingModeChangeTipPrefab: {fileID: 114429345346749554, guid: 03ffa16cba025c844b778902a3170680, type: 3} - UseMultiThread: 1 + ProjectConfig: {fileID: 11400000, guid: c66f5f1413c2e471aa0c410731aa0a78, type: 2} diff --git a/Nreal/Assets/NRSDK/NRProjectConfig.asset b/Nreal/Assets/NRSDK/NRProjectConfig.asset new file mode 100644 index 00000000..c83e6dbd --- /dev/null +++ b/Nreal/Assets/NRSDK/NRProjectConfig.asset @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a1762186822e43a7a4a471f83f53761, type: 3} + m_Name: NRProjectConfig + m_EditorClassIdentifier: + targetDeviceTypes: 0100000002000000 diff --git a/Nreal/Assets/NRSDK/NRProjectConfig.asset.meta b/Nreal/Assets/NRSDK/NRProjectConfig.asset.meta new file mode 100644 index 00000000..09a72892 --- /dev/null +++ b/Nreal/Assets/NRSDK/NRProjectConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c66f5f1413c2e471aa0c410731aa0a78 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Nreal/Assets/NRSDK/Plugins/Android/nr_api.aar b/Nreal/Assets/NRSDK/Plugins/Android/nr_api.aar index 00d89a2c..701016e0 100644 Binary files a/Nreal/Assets/NRSDK/Plugins/Android/nr_api.aar and b/Nreal/Assets/NRSDK/Plugins/Android/nr_api.aar differ diff --git a/Nreal/Assets/NRSDK/Plugins/Android/nrvirtualcontroller.aar b/Nreal/Assets/NRSDK/Plugins/Android/nrvirtualcontroller.aar index 44d697ec..27d07d03 100644 Binary files a/Nreal/Assets/NRSDK/Plugins/Android/nrvirtualcontroller.aar and b/Nreal/Assets/NRSDK/Plugins/Android/nrvirtualcontroller.aar differ diff --git a/Nreal/Assets/NRSDK/Prefabs/NRCameraRig.prefab b/Nreal/Assets/NRSDK/Prefabs/NRCameraRig.prefab index e41e9a01..662e4e52 100644 --- a/Nreal/Assets/NRSDK/Prefabs/NRCameraRig.prefab +++ b/Nreal/Assets/NRSDK/Prefabs/NRCameraRig.prefab @@ -314,6 +314,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_TrackingType: 0 + TrackingModeAutoAdapt: 1 UseRelative: 1 leftCamera: {fileID: 20850121355348172} centerCamera: {fileID: 20880588574554076} diff --git a/Nreal/Assets/NRSDK/README.txt b/Nreal/Assets/NRSDK/README.txt index 47dacc8b..db559515 100644 --- a/Nreal/Assets/NRSDK/README.txt +++ b/Nreal/Assets/NRSDK/README.txt @@ -1,5 +1,5 @@ Nreal MR SDK for Unity -version 1.7.0 +version 1.8.0 This SDK provides Android and windows developers with the easiest way to add Nreal MR support to their Unity projects. diff --git a/Nreal/Assets/NRSDK/Resources/NRGlassesErrorTip.prefab.meta b/Nreal/Assets/NRSDK/Resources/NRGlassesErrorTip.prefab.meta index af0ca417..a3bce80d 100644 --- a/Nreal/Assets/NRSDK/Resources/NRGlassesErrorTip.prefab.meta +++ b/Nreal/Assets/NRSDK/Resources/NRGlassesErrorTip.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 922cd123e29143b41a37987f4ecf02eb +guid: c5170442ea0ec8646bd3d085abcb5768 NativeFormatImporter: externalObjects: {} mainObjectFileID: 100100000 diff --git a/Nreal/Assets/NRSDK/Resources/NRUI/NRHomeMenu.prefab b/Nreal/Assets/NRSDK/Resources/NRUI/NRHomeMenu.prefab index a33d32b5..2feeabe4 100644 --- a/Nreal/Assets/NRSDK/Resources/NRUI/NRHomeMenu.prefab +++ b/Nreal/Assets/NRSDK/Resources/NRUI/NRHomeMenu.prefab @@ -1,11 +1,21 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 0} + m_RootGameObject: {fileID: 1488749801730532} + m_IsPrefabAsset: 1 --- !u!1 &1106053827629138 GameObject: - m_ObjectHideFlags: 0 + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} serializedVersion: 6 m_Component: - component: {fileID: 224800493641615536} @@ -19,79 +29,199 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &224800493641615536 -RectTransform: +--- !u!1 &1191976670710130 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224087715617629894} + - component: {fileID: 222861896387143024} + - component: {fileID: 114979148188347418} + - component: {fileID: 114904691746745106} + m_Layer: 0 + m_Name: cancelBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1274793763836306 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224121414759132826} + - component: {fileID: 222290249501933290} + - component: {fileID: 114734762905142654} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1402733949007364 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224071476908020990} + - component: {fileID: 222640651202133864} + - component: {fileID: 114293333586071104} + m_Layer: 0 + m_Name: titleTxt + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1433451016462308 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224610106774755768} + - component: {fileID: 223830625353192524} + - component: {fileID: 114303140152832270} + - component: {fileID: 114325526901365074} + m_Layer: 0 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1480527415366308 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1106053827629138} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 4328352011631924} + m_Layer: 0 + m_Name: Offset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1488749801730532 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 4245131971381910} + - component: {fileID: 114974376557273422} + m_Layer: 0 + m_Name: NRHomeMenu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1688065397146368 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224851773903527224} + - component: {fileID: 222773683024348338} + - component: {fileID: 114394035862268076} + m_Layer: 0 + m_Name: contentTxt + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &1921205815160406 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224068070820283588} + - component: {fileID: 222180523725845114} + - component: {fileID: 114820683232686962} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1928768737839332 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224447589837466862} + - component: {fileID: 222538896494676210} + - component: {fileID: 114403804837553000} + m_Layer: 0 + m_Name: MenuPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4245131971381910 +Transform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1488749801730532} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -3} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 224121414759132826} - m_Father: {fileID: 224447589837466862} - m_RootOrder: 2 + - {fileID: 4328352011631924} + m_Father: {fileID: 0} + 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: 90, y: -47.9} - m_SizeDelta: {x: 160, y: 45} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &222088703902530462 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1106053827629138} - m_CullTransparentMesh: 0 ---- !u!114 &114513050465765114 -MonoBehaviour: - m_ObjectHideFlags: 0 +--- !u!4 &4328352011631924 +Transform: + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1106053827629138} - 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: 21300000, guid: 864158aa50ca68141b7fff88638b6fe8, type: 3} - 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 + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1480527415366308} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 1.3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224610106774755768} + m_Father: {fileID: 4245131971381910} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &114188669632781590 MonoBehaviour: - m_ObjectHideFlags: 0 + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 1106053827629138} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, 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} @@ -101,7 +231,6 @@ MonoBehaviour: 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 @@ -109,206 +238,191 @@ MonoBehaviour: m_HighlightedSprite: {fileID: 21300000, guid: 5505cd2125511484da016a1192cee114, type: 3} m_PressedSprite: {fileID: 21300000, guid: 5505cd2125511484da016a1192cee114, type: 3} - m_SelectedSprite: {fileID: 21300000, guid: 5505cd2125511484da016a1192cee114, type: 3} m_DisabledSprite: {fileID: 21300000, guid: 864158aa50ca68141b7fff88638b6fe8, type: 3} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed - m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 114513050465765114} m_OnClick: m_PersistentCalls: m_Calls: [] ---- !u!1 &1191976670710130 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 224087715617629894} - - component: {fileID: 222861896387143024} - - component: {fileID: 114979148188347418} - - component: {fileID: 114904691746745106} - m_Layer: 0 - m_Name: cancelBtn - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &224087715617629894 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1191976670710130} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -3} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 224068070820283588} - m_Father: {fileID: 224447589837466862} - 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: -90, y: -47.9} - m_SizeDelta: {x: 160, y: 45} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &222861896387143024 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1191976670710130} - m_CullTransparentMesh: 0 ---- !u!114 &114979148188347418 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114293333586071104 MonoBehaviour: - m_ObjectHideFlags: 0 + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1191976670710130} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1402733949007364} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, 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_RaycastTarget: 0 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 864158aa50ca68141b7fff88638b6fe8, type: 3} - 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!114 &114904691746745106 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1191976670710130} + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 12800000, guid: 8b7806a64d6a99541bc94106151b1c1d, type: 3} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 2 + m_MaxSize: 24 + m_Alignment: 4 + m_AlignByGeometry: 1 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Exit the App? +--- !u!114 &114303140152832270 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1433451016462308} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, 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: 2 - 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: 21300000, guid: 5505cd2125511484da016a1192cee114, - type: 3} - m_PressedSprite: {fileID: 21300000, guid: 5505cd2125511484da016a1192cee114, type: 3} - m_SelectedSprite: {fileID: 21300000, guid: 5505cd2125511484da016a1192cee114, type: 3} - m_DisabledSprite: {fileID: 21300000, guid: 864158aa50ca68141b7fff88638b6fe8, type: 3} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Highlighted - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 114979148188347418} - m_OnClick: + 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: 21 +--- !u!114 &114325526901365074 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1433451016462308} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6750858741a2f3744a27ca80b2f55710, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 +--- !u!114 &114394035862268076 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1688065397146368} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.68235296, g: 0.7529412, b: 0.92941177, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] ---- !u!1 &1274793763836306 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 224121414759132826} - - component: {fileID: 222290249501933290} - - component: {fileID: 114734762905142654} - m_Layer: 0 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &224121414759132826 -RectTransform: - m_ObjectHideFlags: 0 + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 12800000, guid: 8b7806a64d6a99541bc94106151b1c1d, type: 3} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Are you sure you want to exit this app? +--- !u!114 &114403804837553000 +MonoBehaviour: + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1274793763836306} - 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: 224800493641615536} - 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!222 &222290249501933290 -CanvasRenderer: - m_ObjectHideFlags: 0 + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1928768737839332} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 7c99c82e5e5ee784c956e2e0c387852b, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114513050465765114 +MonoBehaviour: + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1274793763836306} - m_CullTransparentMesh: 0 + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1106053827629138} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 864158aa50ca68141b7fff88638b6fe8, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 --- !u!114 &114734762905142654 MonoBehaviour: - m_ObjectHideFlags: 0 + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 1274793763836306} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 12800000, guid: 8b7806a64d6a99541bc94106151b1c1d, type: 3} m_FontSize: 18 @@ -323,130 +437,175 @@ MonoBehaviour: m_VerticalOverflow: 0 m_LineSpacing: 1 m_Text: Exit Now ---- !u!1 &1402733949007364 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 224071476908020990} - - component: {fileID: 222640651202133864} - - component: {fileID: 114293333586071104} - m_Layer: 0 - m_Name: titleTxt - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &224071476908020990 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1402733949007364} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -3} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 224447589837466862} - 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: -44.6} - m_SizeDelta: {x: 200, y: 34.91} - m_Pivot: {x: 0.5, y: 1} ---- !u!222 &222640651202133864 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1402733949007364} - m_CullTransparentMesh: 0 ---- !u!114 &114293333586071104 +--- !u!114 &114820683232686962 MonoBehaviour: - m_ObjectHideFlags: 0 + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1402733949007364} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1921205815160406} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 12800000, guid: 8b7806a64d6a99541bc94106151b1c1d, type: 3} - m_FontSize: 24 + m_FontSize: 18 m_FontStyle: 0 - m_BestFit: 1 - m_MinSize: 2 - m_MaxSize: 24 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 m_Alignment: 4 - m_AlignByGeometry: 1 + m_AlignByGeometry: 0 m_RichText: 1 m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: Exit the App? ---- !u!1 &1433451016462308 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 224610106774755768} - - component: {fileID: 223830625353192524} - - component: {fileID: 114303140152832270} - - component: {fileID: 114325526901365074} - m_Layer: 0 - m_Name: Canvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &224610106774755768 -RectTransform: - m_ObjectHideFlags: 0 + m_Text: Cancel +--- !u!114 &114904691746745106 +MonoBehaviour: + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1433451016462308} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} - m_Children: - - {fileID: 224447589837466862} - m_Father: {fileID: 4328352011631924} - 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} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1191976670710130} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, 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: 2 + 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_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: 21300000, guid: 5505cd2125511484da016a1192cee114, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 5505cd2125511484da016a1192cee114, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 864158aa50ca68141b7fff88638b6fe8, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114979148188347418} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114974376557273422 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1488749801730532} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 49465c4e6f2f23b4bab2fda86f463ab7, type: 3} + m_Name: + m_EditorClassIdentifier: + confirmBtn: {fileID: 114188669632781590} + cancelBtn: {fileID: 114904691746745106} +--- !u!114 &114979148188347418 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1191976670710130} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 864158aa50ca68141b7fff88638b6fe8, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &222088703902530462 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1106053827629138} + m_CullTransparentMesh: 0 +--- !u!222 &222180523725845114 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1921205815160406} + m_CullTransparentMesh: 0 +--- !u!222 &222290249501933290 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1274793763836306} + m_CullTransparentMesh: 0 +--- !u!222 &222538896494676210 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1928768737839332} + m_CullTransparentMesh: 0 +--- !u!222 &222640651202133864 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1402733949007364} + m_CullTransparentMesh: 0 +--- !u!222 &222773683024348338 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1688065397146368} + m_CullTransparentMesh: 0 +--- !u!222 &222861896387143024 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1191976670710130} + m_CullTransparentMesh: 0 --- !u!223 &223830625353192524 Canvas: - m_ObjectHideFlags: 0 + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 1433451016462308} m_Enabled: 1 serializedVersion: 3 @@ -462,228 +621,72 @@ Canvas: m_SortingLayerID: 0 m_SortingOrder: 100 m_TargetDisplay: 0 ---- !u!114 &114303140152832270 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1433451016462308} - 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: 21 - m_PresetInfoIsWorld: 0 ---- !u!114 &114325526901365074 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1433451016462308} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6750858741a2f3744a27ca80b2f55710, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 ---- !u!1 &1480527415366308 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4328352011631924} - m_Layer: 0 - m_Name: Offset - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4328352011631924 -Transform: - m_ObjectHideFlags: 0 +--- !u!224 &224068070820283588 +RectTransform: + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1480527415366308} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1921205815160406} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 1.3} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 224610106774755768} - m_Father: {fileID: 4245131971381910} + m_Children: [] + m_Father: {fileID: 224087715617629894} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1488749801730532 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4245131971381910} - - component: {fileID: 114974376557273422} - m_Layer: 0 - m_Name: NRHomeMenu - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4245131971381910 -Transform: - m_ObjectHideFlags: 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!224 &224071476908020990 +RectTransform: + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1488749801730532} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1402733949007364} 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: -3} m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4328352011631924} - m_Father: {fileID: 0} + m_Children: [] + m_Father: {fileID: 224447589837466862} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &114974376557273422 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1488749801730532} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 49465c4e6f2f23b4bab2fda86f463ab7, type: 3} - m_Name: - m_EditorClassIdentifier: - confirmBtn: {fileID: 114188669632781590} - cancelBtn: {fileID: 114904691746745106} ---- !u!1 &1688065397146368 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 224851773903527224} - - component: {fileID: 222773683024348338} - - component: {fileID: 114394035862268076} - m_Layer: 0 - m_Name: contentTxt - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &224851773903527224 + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -44.6} + m_SizeDelta: {x: 200, y: 34.91} + m_Pivot: {x: 0.5, y: 1} +--- !u!224 &224087715617629894 RectTransform: - m_ObjectHideFlags: 0 + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1688065397146368} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1191976670710130} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: -3} m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] + m_Children: + - {fileID: 224068070820283588} m_Father: {fileID: 224447589837466862} - m_RootOrder: 1 + 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: 0, y: 18} - m_SizeDelta: {x: 160, y: 30} + m_AnchoredPosition: {x: -90, y: -47.9} + m_SizeDelta: {x: 160, y: 45} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &222773683024348338 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1688065397146368} - m_CullTransparentMesh: 0 ---- !u!114 &114394035862268076 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1688065397146368} - 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.68235296, g: 0.7529412, b: 0.92941177, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 12800000, guid: 8b7806a64d6a99541bc94106151b1c1d, type: 3} - m_FontSize: 18 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Are you sure you want to exit this app? ---- !u!1 &1921205815160406 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 224068070820283588} - - component: {fileID: 222180523725845114} - - component: {fileID: 114820683232686962} - m_Layer: 0 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &224068070820283588 +--- !u!224 &224121414759132826 RectTransform: - m_ObjectHideFlags: 0 + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1921205815160406} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1274793763836306} 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: 224087715617629894} + m_Father: {fileID: 224800493641615536} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -691,72 +694,11 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &222180523725845114 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1921205815160406} - m_CullTransparentMesh: 0 ---- !u!114 &114820683232686962 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1921205815160406} - 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: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 12800000, guid: 8b7806a64d6a99541bc94106151b1c1d, type: 3} - m_FontSize: 18 - 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: Cancel ---- !u!1 &1928768737839332 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 224447589837466862} - - component: {fileID: 222538896494676210} - - component: {fileID: 114403804837553000} - m_Layer: 0 - m_Name: MenuPanel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 --- !u!224 &224447589837466862 RectTransform: - m_ObjectHideFlags: 0 + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 1928768737839332} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -774,41 +716,59 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 430, y: 220} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &222538896494676210 -CanvasRenderer: - m_ObjectHideFlags: 0 +--- !u!224 &224610106774755768 +RectTransform: + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1928768737839332} - m_CullTransparentMesh: 0 ---- !u!114 &114403804837553000 -MonoBehaviour: - m_ObjectHideFlags: 0 + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1433451016462308} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_Children: + - {fileID: 224447589837466862} + m_Father: {fileID: 4328352011631924} + 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!224 &224800493641615536 +RectTransform: + m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1928768737839332} - 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: 21300000, guid: 7c99c82e5e5ee784c956e2e0c387852b, type: 3} - 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: 4 + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1106053827629138} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224121414759132826} + m_Father: {fileID: 224447589837466862} + 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: 90, y: -47.9} + m_SizeDelta: {x: 160, y: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224851773903527224 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1688065397146368} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224447589837466862} + 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: 0, y: 18} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Nreal/Assets/NRSDK/Resources/Record/Shaders/NRBackground.shader b/Nreal/Assets/NRSDK/Resources/Record/Shaders/NRBackground.shader index 07d02715..12cb3a87 100644 --- a/Nreal/Assets/NRSDK/Resources/Record/Shaders/NRBackground.shader +++ b/Nreal/Assets/NRSDK/Resources/Record/Shaders/NRBackground.shader @@ -7,7 +7,7 @@ Shader "NRSDK/NRBackground" SubShader { - Tags { "RenderType" = "Opaque" } + Tags { "Queue" = "Background-1" "RenderType" = "Opaque" } LOD 100 Pass diff --git a/Nreal/Assets/NRSDK/Resources/Record/Shaders/NRBackgroundYUV.shader b/Nreal/Assets/NRSDK/Resources/Record/Shaders/NRBackgroundYUV.shader index 939876a6..cf0aca77 100644 --- a/Nreal/Assets/NRSDK/Resources/Record/Shaders/NRBackgroundYUV.shader +++ b/Nreal/Assets/NRSDK/Resources/Record/Shaders/NRBackgroundYUV.shader @@ -9,7 +9,7 @@ Shader "NRSDK/NRBackgroundYUV" SubShader { - Tags { "RenderType" = "Opaque" } + Tags { "Queue" = "Background-1" "RenderType" = "Opaque" } LOD 100 Pass diff --git a/Nreal/Assets/NRSDK/Scripts/Capture/CaptureBehaviour/CaptureBehaviourBase.cs b/Nreal/Assets/NRSDK/Scripts/Capture/CaptureBehaviour/CaptureBehaviourBase.cs index 40e93e44..adda86c4 100644 --- a/Nreal/Assets/NRSDK/Scripts/Capture/CaptureBehaviour/CaptureBehaviourBase.cs +++ b/Nreal/Assets/NRSDK/Scripts/Capture/CaptureBehaviour/CaptureBehaviourBase.cs @@ -43,7 +43,7 @@ public void SetCameraMask(int mask) public void SetBackGroundColor(Color color) { - this.CaptureCamera.backgroundColor = new Color(color.r, color.g, color.b, 0); + this.CaptureCamera.backgroundColor = color; //new Color(color.r, color.g, color.b, 0); } /// Executes the 'frame' action. diff --git a/Nreal/Assets/NRSDK/Scripts/Capture/Encoder/VideoEncoder.cs b/Nreal/Assets/NRSDK/Scripts/Capture/Encoder/VideoEncoder.cs index 3e844463..03cc9ec4 100644 --- a/Nreal/Assets/NRSDK/Scripts/Capture/Encoder/VideoEncoder.cs +++ b/Nreal/Assets/NRSDK/Scripts/Capture/Encoder/VideoEncoder.cs @@ -49,10 +49,10 @@ private static void RunOnRenderThread(int eventID) { NativeEncoder.Start(); } - if (eventID == STOPENCODEEVENT) - { - NativeEncoder.Stop(); - } + //if (eventID == STOPENCODEEVENT) + //{ + // NativeEncoder.Stop(); + //} } #endif @@ -112,7 +112,7 @@ private void InitAudioEncodeTool() } /// Commits. - /// The right. + /// The renderTexture. /// The timestamp. public void Commit(RenderTexture rt, UInt64 timestamp) { @@ -147,11 +147,12 @@ public void Stop() return; } + NRDebugger.Info("[VideoEncoder] Stop"); m_AudioEncodeTool?.StopRecord(); #if !UNITY_EDITOR - GL.IssuePluginEvent(RenderThreadHandlePtr, STOPENCODEEVENT); + //GL.IssuePluginEvent(RenderThreadHandlePtr, STOPENCODEEVENT); + NativeEncoder.Stop(); #endif - NRDebugger.Info("[VideoEncoder] Stop"); m_IsStarted = false; } diff --git a/Nreal/Assets/NRSDK/Scripts/Capture/FrameCaptureContext.cs b/Nreal/Assets/NRSDK/Scripts/Capture/FrameCaptureContext.cs index 4948c485..47269cd4 100644 --- a/Nreal/Assets/NRSDK/Scripts/Capture/FrameCaptureContext.cs +++ b/Nreal/Assets/NRSDK/Scripts/Capture/FrameCaptureContext.cs @@ -112,6 +112,17 @@ public void StartCaptureMode(CameraParameters param) this.m_IsInitialized = true; } + /// Auto adaption for BlendMode based on supported feature on current device. + /// source blendMode. + /// Fallback blendMode. + public BlendMode AutoAdaptBlendMode(BlendMode blendMode) + { + if (!NRDevice.Subsystem.IsFeatureSupported(NRSupportedFeature.NR_FEATURE_RGB_CAMERA)) + return BlendMode.VirtualOnly; + + return blendMode; + } + private FrameCaptureContext Sequence(IFrameConsumer consummer) { this.m_FrameConsumerList.Add(consummer); @@ -248,7 +259,7 @@ public void Release() stopwatch.Start(); if (m_FrameProvider != null) { - m_FrameProvider.OnUpdate -= this.m_CaptureBehaviour.OnFrame; + m_FrameProvider.OnUpdate -= UpdateFrame; m_FrameProvider?.Release(); } diff --git a/Nreal/Assets/NRSDK/Scripts/Capture/NRCameraInitializer.cs b/Nreal/Assets/NRSDK/Scripts/Capture/NRCameraInitializer.cs index c4313296..71c056e6 100644 --- a/Nreal/Assets/NRSDK/Scripts/Capture/NRCameraInitializer.cs +++ b/Nreal/Assets/NRSDK/Scripts/Capture/NRCameraInitializer.cs @@ -41,6 +41,11 @@ private IEnumerator Initialize() matrix_data = NRFrame.GetEyeProjectMatrix(out result, m_TargetCamera.nearClipPlane, m_TargetCamera.farClipPlane); } + if (m_DeviceType == NativeDevice.RGB_CAMERA && !NRKernal.NRDevice.Subsystem.IsFeatureSupported(NRSupportedFeature.NR_FEATURE_RGB_CAMERA)) + { + NRDebugger.Warning("[NRCameraInitializer] Auto adaption for DevieType : {0} ==> {1}", m_DeviceType, NativeDevice.LEFT_DISPLAY); + m_DeviceType = NativeDevice.LEFT_DISPLAY; + } var eyeposFromHead = NRFrame.EyePoseFromHead; switch (m_DeviceType) { diff --git a/Nreal/Assets/NRSDK/Scripts/Capture/NRKernalUpdater.cs b/Nreal/Assets/NRSDK/Scripts/Capture/NRKernalUpdater.cs index 584d024a..ae189a87 100644 --- a/Nreal/Assets/NRSDK/Scripts/Capture/NRKernalUpdater.cs +++ b/Nreal/Assets/NRSDK/Scripts/Capture/NRKernalUpdater.cs @@ -35,13 +35,6 @@ public static NRKernalUpdater Instance [RuntimeInitializeOnLoadMethod] static void Initialize() { -#if NRDEBUG - NRDebugger.logLevel = LogLevel.All; -#elif !UNITY_EDITOR - NRDebugger.logLevel = Debug.isDebugBuild ? LogLevel.Debug : LogLevel.Info; -#else - NRDebugger.logLevel = LogLevel.Warning; -#endif if (m_Instance == null) { m_Instance = CreateInstance(); @@ -64,12 +57,27 @@ private static NRKernalUpdater CreateInstance() /// Event queue for all listeners interested in OnPostUpdate events. public static event Action OnPostUpdate; +#if DEBUG_PERFORMANCE + long lastFrame = 0; +#endif + /// Updates this object. private void Update() { +#if DEBUG_PERFORMANCE + long curFrame = System.DateTime.Now.Ticks; + long duration = curFrame - lastFrame; +#endif OnPreUpdate?.Invoke(); OnUpdate?.Invoke(); OnPostUpdate?.Invoke(); + +#if DEBUG_PERFORMANCE + long curFrameEnd = System.DateTime.Now.Ticks; + long curFrameDur = curFrameEnd - curFrame; + NRDebugger.Info("[Performance] Main update: frameAll={0}Tick, frameUpdate={1}", duration, curFrameDur); + lastFrame = curFrame; +#endif } private static bool m_IsDestroyed = false; diff --git a/Nreal/Assets/NRSDK/Scripts/Capture/NRPhotoCapture.cs b/Nreal/Assets/NRSDK/Scripts/Capture/NRPhotoCapture.cs index 9015a626..4adb17c2 100644 --- a/Nreal/Assets/NRSDK/Scripts/Capture/NRPhotoCapture.cs +++ b/Nreal/Assets/NRSDK/Scripts/Capture/NRPhotoCapture.cs @@ -30,9 +30,11 @@ public static IEnumerable SupportedResolutions { var resolutions = new List(); var resolution = new Resolution(); - var rgbcamera_resolution = NRDevice.Subsystem.GetDeviceResolution(NativeDevice.RGB_CAMERA); - resolution.width = rgbcamera_resolution.width; - resolution.height = rgbcamera_resolution.height; + NativeResolution rgbResolution = new NativeResolution(1280, 720); + if (NRDevice.Subsystem.IsFeatureSupported(NRSupportedFeature.NR_FEATURE_RGB_CAMERA)) + rgbResolution = NRFrame.GetDeviceResolution(NativeDevice.RGB_CAMERA); + resolution.width = rgbResolution.width; + resolution.height = rgbResolution.height; resolutions.Add(resolution); m_SupportedResolutions = resolutions; } @@ -86,12 +88,24 @@ public IntPtr GetUnsafePointerToVideoDeviceController() /// Starts photo mode asynchronous. /// Options for controlling the setup. /// The on photo mode started callback. - public void StartPhotoModeAsync(CameraParameters setupParams, OnPhotoModeStartedCallback onPhotoModeStartedCallback) + /// Auto adaption for BlendMode based on supported feature on current device. + public void StartPhotoModeAsync(CameraParameters setupParams, OnPhotoModeStartedCallback onPhotoModeStartedCallback, bool autoAdaptBlendMode = false) { PhotoCaptureResult result = new PhotoCaptureResult(); try { setupParams.camMode = CamMode.PhotoMode; + if (autoAdaptBlendMode) + { + var blendMode = m_CaptureContext.AutoAdaptBlendMode(setupParams.blendMode); + if (blendMode != setupParams.blendMode) + { + NRDebugger.Warning("[PhotoCapture] AutoAdaptBlendMode : {0} => {1}", setupParams.blendMode, blendMode); + setupParams.blendMode = blendMode; + } + } + if (setupParams.frameRate <= 0) + NRDebugger.Warning("[PhotoCapture] frameRate need to be bigger than zero"); m_CaptureContext.StartCaptureMode(setupParams); m_CaptureContext.StartCapture(); diff --git a/Nreal/Assets/NRSDK/Scripts/Capture/NRVideoCapture.cs b/Nreal/Assets/NRSDK/Scripts/Capture/NRVideoCapture.cs index 6e0fd255..d4f3da2b 100644 --- a/Nreal/Assets/NRSDK/Scripts/Capture/NRVideoCapture.cs +++ b/Nreal/Assets/NRSDK/Scripts/Capture/NRVideoCapture.cs @@ -38,11 +38,9 @@ public static IEnumerable SupportedResolutions { get { -#if !UNITY_EDITOR - NativeResolution rgbResolution = NRFrame.GetDeviceResolution(NativeDevice.RGB_CAMERA); -#else NativeResolution rgbResolution = new NativeResolution(1280, 720); -#endif + if (NRDevice.Subsystem.IsFeatureSupported(NRSupportedFeature.NR_FEATURE_RGB_CAMERA)) + rgbResolution = NRFrame.GetDeviceResolution(NativeDevice.RGB_CAMERA); Resolution stand_resolution = new Resolution() { width = rgbResolution.width, @@ -157,8 +155,18 @@ public void StartRecordingAsync(string filename, OnStartedRecordingVideoCallback /// Starts video mode asynchronous. /// Options for controlling the setup. /// The on video mode started callback. - public void StartVideoModeAsync(CameraParameters setupParams, OnVideoModeStartedCallback onVideoModeStartedCallback) + /// Auto adaption for BlendMode based on supported feature on current device. + public void StartVideoModeAsync(CameraParameters setupParams, OnVideoModeStartedCallback onVideoModeStartedCallback, bool autoAdaptBlendMode = false) { + if (autoAdaptBlendMode) + { + var blendMode = m_CaptureContext.AutoAdaptBlendMode(setupParams.blendMode); + if (blendMode != setupParams.blendMode) + { + NRDebugger.Warning("[VideoCapture] AutoAdaptBlendMode : {0} => {1}", setupParams.blendMode, blendMode); + setupParams.blendMode = blendMode; + } + } if (setupParams.audioState == AudioState.MicAudio) { #if UNITY_ANDROID && !UNITY_EDITOR @@ -186,20 +194,31 @@ public void StartVideoModeAsync(CameraParameters setupParams, OnVideoModeStarted } } - private void StartVideoMode(CameraParameters setupParams, OnVideoModeStartedCallback onVideoModeStartedCallback) + private void StartVideoMode(CameraParameters setupParams, OnVideoModeStartedCallback onVideoModeStartedCallback, bool autoAdaptBlendMode = false) { setupParams.camMode = CamMode.VideoMode; setupParams.hologramOpacity = 1; + if (autoAdaptBlendMode) + { + var blendMode = m_CaptureContext.AutoAdaptBlendMode(setupParams.blendMode); + if (blendMode != setupParams.blendMode) + { + NRDebugger.Warning("[VideoCapture] AutoAdaptBlendMode : {0} => {1}", setupParams.blendMode, blendMode); + setupParams.blendMode = blendMode; + } + } + if (setupParams.frameRate <= 0) + NRDebugger.Warning("[PhotoCapture] frameRate need to be bigger than zero"); m_CaptureContext.StartCaptureMode(setupParams); var result = new VideoCaptureResult(); result.resultType = CaptureResultType.Success; onVideoModeStartedCallback?.Invoke(result); } - public void StartVideoModeAsync(CameraParameters setupParams, AudioState audioState, OnVideoModeStartedCallback onVideoModeStartedCallback) + public void StartVideoModeAsync(CameraParameters setupParams, AudioState audioState, OnVideoModeStartedCallback onVideoModeStartedCallback, bool autoAdaptBlendMode = false) { setupParams.audioState = audioState; - StartVideoModeAsync(setupParams, onVideoModeStartedCallback); + StartVideoModeAsync(setupParams, onVideoModeStartedCallback, autoAdaptBlendMode); } /// Stops recording asynchronous. diff --git a/Nreal/Assets/NRSDK/Scripts/Input/Controller/ControllerStateParsers/NrealLightControllerStateParser.cs b/Nreal/Assets/NRSDK/Scripts/Input/Controller/ControllerStateParsers/NrealLightControllerStateParser.cs index fdaf2148..0029aed5 100644 --- a/Nreal/Assets/NRSDK/Scripts/Input/Controller/ControllerStateParsers/NrealLightControllerStateParser.cs +++ b/Nreal/Assets/NRSDK/Scripts/Input/Controller/ControllerStateParsers/NrealLightControllerStateParser.cs @@ -13,7 +13,7 @@ namespace NRKernal using UnityEngine; /// - /// The class parses the raw states of Nreal Light Controller to usable states by invoking + /// The class parses the raw states of Nreal Controller to usable states by invoking /// parsing method every frame. public class NrealLightControllerStateParser : IControllerStateParser { diff --git a/Nreal/Assets/NRSDK/Scripts/Input/Controller/NRInput.cs b/Nreal/Assets/NRSDK/Scripts/Input/Controller/NRInput.cs index 21ca06e7..c0097f38 100644 --- a/Nreal/Assets/NRSDK/Scripts/Input/Controller/NRInput.cs +++ b/Nreal/Assets/NRSDK/Scripts/Input/Controller/NRInput.cs @@ -482,6 +482,13 @@ private static ControllerState GetControllerState(ControllerHandEnum hand) /// private static void SetInputSourceSafely(InputSourceEnum inputSourceType) { + var adaptInputSourceType = AdaptInputSource(inputSourceType); + if (adaptInputSourceType != inputSourceType) + { + NRDebugger.Warning("[NRInput] AutoAdaptInputSource : {0} => {1}", inputSourceType, adaptInputSourceType); + inputSourceType = adaptInputSourceType; + } + if (SetInputSource(inputSourceType)) { return; @@ -491,6 +498,16 @@ private static void SetInputSourceSafely(InputSourceEnum inputSourceType) SetInputSource(fallbackInputSourceType); } + /// Auto adaption for inputSource based on supported feature on current device. + /// Fallback inputSource. + private static InputSourceEnum AdaptInputSource(InputSourceEnum inputSourceType) + { + if (inputSourceType == InputSourceEnum.Hands && !NRDevice.Subsystem.IsFeatureSupported(NRSupportedFeature.NR_FEATURE_HANDTRACKING)) + return InputSourceEnum.Controller; + + return inputSourceType; + } + /// /// To swith the controller provider /// diff --git a/Nreal/Assets/NRSDK/Scripts/Input/Controller/PhoneControllerDisplay/NRDefaultPhoneScreenProvider.cs b/Nreal/Assets/NRSDK/Scripts/Input/Controller/PhoneControllerDisplay/NRDefaultPhoneScreenProvider.cs index 1168befc..e7f2ea6f 100644 --- a/Nreal/Assets/NRSDK/Scripts/Input/Controller/PhoneControllerDisplay/NRDefaultPhoneScreenProvider.cs +++ b/Nreal/Assets/NRSDK/Scripts/Input/Controller/PhoneControllerDisplay/NRDefaultPhoneScreenProvider.cs @@ -14,6 +14,7 @@ namespace NRKernal public class NRDefaultPhoneScreenProvider : NRPhoneScreenProviderBase { + SystemButtonState m_buttonState = new SystemButtonState(); private static AndroidJavaObject m_VirtualDisplayFragment; public class AndroidSystemButtonDataProxy : AndroidJavaProxy, ISystemButtonDataProxy { @@ -39,6 +40,25 @@ public void OnUpdate(AndroidJavaObject data) } } + public override void OnPreUpdate() + { + base.OnPreUpdate(); + m_buttonState.Reset(); + + var data = m_VirtualDisplayFragment.Call("GetSystemButtonState"); + if (data != null) + { + bool btnApp = data.Call("GetButtonApp"); + bool btnTouch = data.Call("GetButtonTouch"); + bool btnHome = data.Call("GetButtonHome"); + float touchX = data.Call("GetTouchX"); + float touchY = data.Call("GetTouchY"); + m_buttonState.Set(btnApp, btnTouch, btnHome, touchX, touchY); + + OnSystemButtonDataChanged(m_buttonState); + } + } + public override void RegistFragment(AndroidJavaObject unityActivity, ISystemButtonDataProxy proxy) { NRDebugger.Info("[VirtualController] RegistFragment..."); @@ -56,7 +76,8 @@ public static void RegistDebugInfoProxy(AndroidJavaProxy proxy) public override ISystemButtonDataProxy CreateAndroidDataProxy() { - return new AndroidSystemButtonDataProxy(this); + // return new AndroidSystemButtonDataProxy(this); + return null; } } } diff --git a/Nreal/Assets/NRSDK/Scripts/Input/Controller/PhoneControllerDisplay/NRPhoneScreenProvider.cs b/Nreal/Assets/NRSDK/Scripts/Input/Controller/PhoneControllerDisplay/NRPhoneScreenProvider.cs index 731aab5a..05e7b7c8 100644 --- a/Nreal/Assets/NRSDK/Scripts/Input/Controller/PhoneControllerDisplay/NRPhoneScreenProvider.cs +++ b/Nreal/Assets/NRSDK/Scripts/Input/Controller/PhoneControllerDisplay/NRPhoneScreenProvider.cs @@ -42,6 +42,24 @@ public class SystemButtonState public float touch_x; public float touch_y; + public void Reset() { + for (int i = 0; i < buttons.Length; i++) + { + buttons[i] = false; + } + touch_x = 0.0f; + touch_y = 0.0f; + } + + public void Set(bool btnApp, bool btnTouch, bool btnHome, float touchX, float touchY) + { + buttons[0] = btnApp; + buttons[1] = btnTouch; + buttons[2] = btnHome; + touch_x = touchX; + touch_y = touchY; + } + public SystemInputState TransformTo(SystemInputState unitystate) { if (unitystate == null) @@ -51,7 +69,8 @@ public SystemInputState TransformTo(SystemInputState unitystate) unitystate.buttons[0] = this.buttons[1]; unitystate.buttons[1] = this.buttons[0]; unitystate.buttons[2] = this.buttons[2]; - unitystate.touch = new Vector2(this.touch_x, this.touch_y); + unitystate.touch.x = this.touch_x; + unitystate.touch.y = this.touch_y; return unitystate; } @@ -99,6 +118,7 @@ public NRPhoneScreenProviderBase() m_UnityActivity = cls_UnityPlayer.GetStatic("currentActivity"); m_AndroidSystemButtonDataProxy = CreateAndroidDataProxy(); this.RegistFragment(m_UnityActivity, m_AndroidSystemButtonDataProxy); + NRKernalUpdater.OnPreUpdate += OnPreUpdate; } public void BindReceiver(ISystemButtonStateReceiver receiver) @@ -106,6 +126,8 @@ public void BindReceiver(ISystemButtonStateReceiver receiver) this.m_Receiver = receiver; } + public virtual void OnPreUpdate() {} + public virtual void RegistFragment(AndroidJavaObject unityActivity, ISystemButtonDataProxy proxy) { } public virtual ISystemButtonDataProxy CreateAndroidDataProxy() { return null; } diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/NativeErrorListener.cs b/Nreal/Assets/NRSDK/Scripts/Interfaces/NativeErrorListener.cs index f319a3b3..01f7ab8b 100644 --- a/Nreal/Assets/NRSDK/Scripts/Interfaces/NativeErrorListener.cs +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/NativeErrorListener.cs @@ -29,7 +29,11 @@ public class NativeErrorListener /// condition occurs. /// Raised when a NRRGB Camera Device Not Find /// error condition occurs. - /// Raised when a NRDP Device Not Find error + /// Raised when the Display device not find + /// error condition occurs. + /// Raised when the MRSpace Display device not find + /// error condition occurs. + /// Raised when display mode mismatch, as MRSpace mode is needed /// condition occurs. /// Thrown when an exception error condition /// occurs. @@ -53,29 +57,29 @@ public static void Check(NativeResult result, object module, string funcName = " switch (result) { case NativeResult.Failure: - throw new NRKernalError(module_tag + "Failed!"); + throw new NRNativeError(result, module_tag + "Failed!"); case NativeResult.InvalidArgument: - throw new NRInvalidArgumentError(module_tag + "InvalidArgument error!"); + throw new NRInvalidArgumentError(result, module_tag + "InvalidArgument error!"); case NativeResult.NotEnoughMemory: - throw new NRNotEnoughMemoryError(module_tag + "NotEnoughMemory error!"); + throw new NRNotEnoughMemoryError(result, module_tag + "NotEnoughMemory error!"); case NativeResult.UnSupported: - throw new NRUnSupportedError(module_tag + "UnSupported error!"); + throw new NRUnSupportedError(result, module_tag + "UnSupported error!"); case NativeResult.GlassesDisconnect: - throw new NRGlassesConnectError(module_tag + "Glasses connect error!"); + throw new NRGlassesConnectError(result, module_tag + "Glasses connect error!"); case NativeResult.SdkVersionMismatch: - throw new NRSdkVersionMismatchError(module_tag + "SDK version mismatch error!"); + throw new NRSdkVersionMismatchError(result, module_tag + "SDK version mismatch error!"); case NativeResult.SdcardPermissionDeny: - throw new NRSdcardPermissionDenyError(module_tag + "Sdcard permission deny error!"); + throw new NRSdcardPermissionDenyError(result, module_tag + "Sdcard permission deny error!"); case NativeResult.RGBCameraDeviceNotFind: - throw new NRRGBCameraDeviceNotFindError(module_tag + "Can not find the rgb camera device error!"); + throw new NRRGBCameraDeviceNotFindError(result, module_tag + "Can not find the rgb camera device error!"); case NativeResult.DPDeviceNotFind: - throw new NRDPDeviceNotFindError(module_tag + "Can not find the dp device error!"); + throw new NRDPDeviceNotFindError(result, module_tag + "Display device Not Find!"); case NativeResult.GetDisplayFailure: - throw new NRDPDeviceNotFindError(module_tag + "Can not find the glasses display!"); + throw new NRGetDisplayFailureError(result, module_tag + "MRSpace display device Not Find!"); case NativeResult.GetDisplayModeMismatch: - throw new NRDPDeviceNotFindError(module_tag + "Glasses display mode mismatch!"); + throw new NRDisplayModeMismatchError(result, module_tag + "Display mode mismatch, as MRSpace mode is needed!"); case NativeResult.UnSupportedHandtrackingCalculation: - throw new NRUnSupportedHandtrackingCalculationError(module_tag + "Not support hand tracking calculation!"); + throw new NRUnSupportedHandtrackingCalculationError(result, module_tag + "Not support hand tracking calculation!"); default: break; } diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/FrameInfo.cs b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/FrameInfo.cs index e9dc6c61..123ca00d 100644 --- a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/FrameInfo.cs +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/FrameInfo.cs @@ -68,8 +68,10 @@ public struct FrameInfo public NRFrameFlags changeFlag; [MarshalAs(UnmanagedType.U4)] public NRTextureType textureType; - - public FrameInfo(IntPtr left, IntPtr right, NativeMat4f p, Vector3 focuspos, Vector3 normal, UInt64 timestamp, NRFrameFlags flag, NRTextureType texturetype) + // local cache for frameHandle + [MarshalAs(UnmanagedType.U8)] + public UInt64 frameHandle; + public FrameInfo(IntPtr left, IntPtr right, NativeMat4f p, Vector3 focuspos, Vector3 normal, UInt64 timestamp, NRFrameFlags flag, NRTextureType texturetype, UInt64 frameHandle) { this.leftTex = left; this.rightTex = right; @@ -79,11 +81,13 @@ public FrameInfo(IntPtr left, IntPtr right, NativeMat4f p, Vector3 focuspos, Vec this.presentTime = timestamp; this.changeFlag = flag; this.textureType = texturetype; + this.frameHandle = frameHandle; } public override string ToString() { - return string.Format("lefttex:{0} righttex:{1} headPose:{2} presentTime:{3} changeFlag:{4}", leftTex, rightTex, headPose, presentTime, changeFlag); + return string.Format("lefttex:{0} righttex:{1} headPose:{2} presentTime:{3} changeFlag:{4}, frameHandle:{5}", + leftTex, rightTex, headPose, presentTime, changeFlag, frameHandle); } } } diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NRDeviceType.cs b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NRDeviceType.cs new file mode 100644 index 00000000..15000b8f --- /dev/null +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NRDeviceType.cs @@ -0,0 +1,20 @@ +/**************************************************************************** +* Copyright 2019 Nreal Techonology Limited. All rights reserved. +* +* This file is part of NRSDK. +* +* https://www.nreal.ai/ +* +*****************************************************************************/ + +namespace NRKernal +{ + /// + /// Features that the sdk might support. + /// + public enum NRDeviceType + { + NrealLight = 1, + NrealAir = 2, + } +} diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NRDeviceType.cs.meta b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NRDeviceType.cs.meta new file mode 100644 index 00000000..7398f28e --- /dev/null +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NRDeviceType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 935c9461c60714bfbad082208e20a2ae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NRDistortionParams.cs b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NRDistortionParams.cs index 7516a50e..b069bc50 100644 --- a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NRDistortionParams.cs +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NRDistortionParams.cs @@ -56,8 +56,8 @@ public struct NRDistortionParams /// A string that represents this object. public override string ToString() { - return string.Format("cameraModel:{0} distortParams1:{1} distortParams2:{2} distortParams3:{3} distortParams4:{4}", - cameraModel, distortParams1, distortParams2, distortParams3, distortParams4); + return string.Format("cameraModel:{0} distortParams1:{1} distortParams2:{2} distortParams3:{3} distortParams4:{4} distortParams5:{5} distortParams6:{6} distortParams7:{7}", + cameraModel, distortParams1, distortParams2, distortParams3, distortParams4, distortParams5, distortParams6, distortParams7); } } } diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeConstants.cs b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeConstants.cs index 20c7c444..226aa122 100644 --- a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeConstants.cs +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeConstants.cs @@ -54,13 +54,23 @@ public class NativeConstants #region error tips /// The glasses disconnect error tip. - public static string GlassesDisconnectErrorTip = "Please connect your Nreal Light Glasses."; + public static string GlassesDisconnectErrorTip = "Please connect your Nreal Glasses."; + /// The glasses disconnect error tip. + public static string GlassesNotAvailbleErrorTip = "Please make sure your Nreal Glasses is available"; /// The sdk version mismatch error tip. public static string SdkVersionMismatchErrorTip = "Please update to the latest version of NRSDK."; /// The sdcard permission deny error tip. public static string SdcardPermissionDenyErrorTip = "There is no read permission for sdcard. Please go to the authorization management page of the device to authorize."; /// The unknow error tip. public static string UnknowErrorTip = "Unkown error! \nPlease contact Nreal's customer service."; + /// The error tip of running on unsupported device. + public static string UnSupportDeviceErrorTip = "App doesn't suppport to run on current glass! \nPlease contact App developer's customer service."; + /// The error tip of running on unsupported device. + public static string DPDeviceNotFindErrorTip = "Nreal Glasses display device not find! \nPlease contact Nreal's customer service."; + /// The error tip of running on unsupported device. + public static string GetDisplayFailureErrorTip = "MRSpace display device not find! \nPlease contact Nreal's customer service."; + /// The error tip of running on unsupported device. + public static string DisplayModeMismatchErrorTip = "Display mode mismatch, as MRSpace mode is needed! \nPlease contact Nreal's customer service."; public static string AudioPermissionDenyErrorTip = "Record audio needs the permission of \n" + "'android.permission.RECORD_AUDIO', Add it to the 'AndroidManifest.xml'"; public static string RGBCameraDeviceNotFindErrorTip = "Please check the FAQ on the Nreal's official website to enable the RGB Camera."; diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeDevice.cs b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeDevice.cs index c559d94e..3667a40e 100644 --- a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeDevice.cs +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeDevice.cs @@ -29,13 +29,13 @@ public enum NativeDevice /// /// The left grayscale camera. - /// Only supported in the version of preview. + /// Only supported in the version of Enterprise. /// LEFT_GRAYSCALE_CAMERA = 3, /// /// The right grayscale camera. - /// Only supported in the version of preview. + /// Only supported in the version of Enterprise. /// RIGHT_GRAYSCALE_CAMERA = 4, } diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeFov4f.cs b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeFov4f.cs index 57deabd7..39ec5635 100644 --- a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeFov4f.cs +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeFov4f.cs @@ -38,5 +38,23 @@ public struct NativeFov4f /// The value is positive. [MarshalAs(UnmanagedType.R4)] public float bottom_tan; + + public NativeFov4f(float left, float right, float top, float bottom) + { + left_tan = left; + right_tan = right; + top_tan = top; + bottom_tan = bottom; + } + + public float[] ToXRFloats() + { + return new float[] { + left_tan, + right_tan, + bottom_tan, + top_tan, + }; + } } } \ No newline at end of file diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeMat3f.cs b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeMat3f.cs index 246fd5aa..efc584f4 100644 --- a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeMat3f.cs +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeMat3f.cs @@ -157,5 +157,13 @@ public float this[int index] } } } + + /// Convert this object into a string representation. + /// A string that represents this object. + public override string ToString() + { + return string.Format("column0:{0}\ncolumn1:{1}\ncolumn2:{2}\n", + column0.ToString(), column1.ToString(), column2.ToString()); + } } } diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeMat4f.cs b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeMat4f.cs index 9b768185..84d866df 100644 --- a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeMat4f.cs +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeMat4f.cs @@ -12,21 +12,18 @@ namespace NRKernal using System.Runtime.InteropServices; using UnityEngine; + using UnityEngine.Assertions; /// A native matrix 4f. [StructLayout(LayoutKind.Sequential)] public struct NativeMat4f { - /// The column 0. [MarshalAs(UnmanagedType.Struct)] public NativeVector4f column0; - /// The first column. [MarshalAs(UnmanagedType.Struct)] public NativeVector4f column1; - /// The second column. [MarshalAs(UnmanagedType.Struct)] public NativeVector4f column2; - /// The third column. [MarshalAs(UnmanagedType.Struct)] public NativeVector4f column3; @@ -40,6 +37,15 @@ public NativeMat4f(Matrix4x4 m) column3 = new NativeVector4f(m.GetColumn(3)); } + public NativeMat4f(float[] source) + { + Assert.IsTrue(source != null && source.Length == 16); + column0 = new NativeVector4f(source[0], source[1], source[2], source[3]); + column1 = new NativeVector4f(source[4], source[5], source[6], source[7]); + column2 = new NativeVector4f(source[8], source[9], source[10], source[11]); + column3 = new NativeVector4f(source[12], source[13], source[14], source[15]); + } + /// Converts this object to an unity matrix 4f. /// This object as a Matrix4x4. public Matrix4x4 ToUnityMat4f() @@ -62,6 +68,16 @@ public static NativeMat4f identity } } + public float[] ToFloats() + { + return new float[] { + column0.X,column0.Y,column0.Z,column0.W, + column1.X,column1.Y,column1.Z,column1.W, + column2.X,column2.Y,column2.Z,column2.W, + column3.X,column3.Y,column3.Z,column3.W, + }; + } + /// Convert this object into a string representation. /// A string that represents this object. public override string ToString() diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeResolution.cs b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeResolution.cs index c1517fe7..126433c1 100644 --- a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeResolution.cs +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeResolution.cs @@ -31,11 +31,22 @@ public NativeResolution(int w, int h) this.height = h; } + public NativeResolution(UnityEngine.Vector2 size) + { + this.width = (int)size.x; + this.height = (int)size.y; + } + + public static NativeResolution operator *(NativeResolution val, float aspect) + { + return new NativeResolution((int)(aspect * val.width), (int)(aspect * val.height)); + } + /// Convert this object into a string representation. /// A string that represents this object. public override string ToString() { - return string.Format("Screen width : {0} height:{1}", width, height); + return string.Format("width:{0} height:{1}", width, height); } } } diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeResult.cs b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeResult.cs index 8ed8a02e..594cb45b 100644 --- a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeResult.cs +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeResult.cs @@ -42,7 +42,7 @@ public enum NativeResult /// DP device is not found. DPDeviceNotFind = 9, - /// Tracking systerm is not running. + /// Tracking system is not running. TrackingNotRunning = 10, /// Get glasses display failed. diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeVector4f.cs b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeVector4f.cs index bcf6a911..731d4eb6 100644 --- a/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeVector4f.cs +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/Types/NativeVector4f.cs @@ -39,6 +39,14 @@ public NativeVector4f(Vector4 v) W = v.w; } + public NativeVector4f(float x, float y, float z, float w) + { + X = x; + Y = y; + Z = z; + W = w; + } + /// Converts this object to an unity vector 4. /// This object as a Vector4. public Vector4 ToUnityVector4() diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/Wrappers/NativeHMD.cs b/Nreal/Assets/NRSDK/Scripts/Interfaces/Wrappers/NativeHMD.cs index 88b6f7d7..26e47a2b 100644 --- a/Nreal/Assets/NRSDK/Scripts/Interfaces/Wrappers/NativeHMD.cs +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/Wrappers/NativeHMD.cs @@ -86,15 +86,36 @@ public Pose GetDevicePoseFromHead(int device) public bool GetProjectionMatrix(ref EyeProjectMatrixData outEyesProjectionMatrix, float znear, float zfar) { NativeFov4f fov = new NativeFov4f(); - NativeResult result_left = NativeApi.NRHMDGetEyeFov(m_HmdHandle, (int)NativeDevice.LEFT_DISPLAY, ref fov); + NativeResult result_left = NativeApi.NRHMDGetEyeFovInCoord(m_HmdHandle, (int)NativeDevice.LEFT_DISPLAY, ref fov); + NativeErrorListener.Check(result_left, this, "GetProjectionMatrix-L"); outEyesProjectionMatrix.LEyeMatrix = ConversionUtility.GetProjectionMatrixFromFov(fov, znear, zfar).ToUnityMat4f(); - NativeResult result_right = NativeApi.NRHMDGetEyeFov(m_HmdHandle, (int)NativeDevice.RIGHT_DISPLAY, ref fov); + + NativeResult result_right = NativeApi.NRHMDGetEyeFovInCoord(m_HmdHandle, (int)NativeDevice.RIGHT_DISPLAY, ref fov); + NativeErrorListener.Check(result_right, this, "GetProjectionMatrix-R"); outEyesProjectionMatrix.REyeMatrix = ConversionUtility.GetProjectionMatrixFromFov(fov, znear, zfar).ToUnityMat4f(); - NativeResult result_RGB = NativeApi.NRHMDGetEyeFov(m_HmdHandle, (int)NativeDevice.RGB_CAMERA, ref fov); + + NativeResult result_RGB = NativeApi.NRHMDGetEyeFovInCoord(m_HmdHandle, (int)NativeDevice.RGB_CAMERA, ref fov); + NativeErrorListener.Check(result_RGB, this, "GetProjectionMatrix-RGB"); outEyesProjectionMatrix.RGBEyeMatrix = ConversionUtility.GetProjectionMatrixFromFov(fov, znear, zfar).ToUnityMat4f(); + return (result_left == NativeResult.Success && result_right == NativeResult.Success && result_RGB == NativeResult.Success); } + [Obsolete("Use 'GetEyeFovInCoord' to replace.")] + public NativeFov4f GetEyeFov(NativeEye eye) + { + NativeFov4f fov = new NativeFov4f(); + NativeApi.NRHMDGetEyeFov(m_HmdHandle, (int)eye, ref fov); + return fov; + } + + public NativeFov4f GetEyeFovInCoord(NativeDevice eye) + { + NativeFov4f fov = new NativeFov4f(); + NativeApi.NRHMDGetEyeFovInCoord(m_HmdHandle, (int)eye, ref fov); + return fov; + } + /// Gets camera intrinsic matrix. /// The eye. /// [in,out] The camera intrinsic matix. @@ -130,6 +151,18 @@ public NativeResolution GetEyeResolution(int eye) #endif } + /// Gets device type of running device. + /// The device type. + public NRDeviceType GetDeviceType() + { + NRDeviceType deviceType = NRDeviceType.NrealLight; + NativeApi.NRHMDGetDeviceType(m_HmdHandle, ref deviceType); + return deviceType; + } + + /// Gets device type of running device. + /// The request feature. + /// Is the feature supported. public bool IsFeatureSupported(NRSupportedFeature feature) { bool result = false; @@ -155,6 +188,13 @@ private struct NativeApi [DllImport(NativeConstants.NRNativeLibrary)] public static extern NativeResult NRHMDCreate(ref UInt64 out_hmd_handle); + /// Nrhmd get device type. + /// Handle of the hmd. + /// [in,out] The out device type. + /// A NativeResult. + [DllImport(NativeConstants.NRNativeLibrary)] + public static extern NativeResult NRHMDGetDeviceType(UInt64 hmd_handle, ref NRDeviceType out_device_type); + /// /// Check whether the current feature is supported. /// @@ -191,8 +231,17 @@ private struct NativeApi /// [in,out] The out eye fov. /// A NativeResult. [DllImport(NativeConstants.NRNativeLibrary)] + [Obsolete] public static extern NativeResult NRHMDGetEyeFov(UInt64 hmd_handle, int eye, ref NativeFov4f out_eye_fov); + /// Nrhmd get eye fov. + /// Handle of the hmd. + /// The eye. + /// [in,out] The out eye fov. + /// A NativeResult. + [DllImport(NativeConstants.NRNativeLibrary)] + public static extern NativeResult NRHMDGetEyeFovInCoord(UInt64 hmd_handle, int eye, ref NativeFov4f out_eye_fov); + /// Nrhmd get camera intrinsic matrix. /// Handle of the hmd. /// The eye. diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/Wrappers/NativeHeadTracking.cs b/Nreal/Assets/NRSDK/Scripts/Interfaces/Wrappers/NativeHeadTracking.cs index cb667c40..c9864450 100644 --- a/Nreal/Assets/NRSDK/Scripts/Interfaces/Wrappers/NativeHeadTracking.cs +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/Wrappers/NativeHeadTracking.cs @@ -125,6 +125,7 @@ public bool GetFramePresentHeadPose(ref Pose pose, ref UInt64 timestamp) { if (m_HeadTrackingHandle == 0 || m_NativeInterface.TrackingHandle == 0) { + NRDebugger.Error("[NativeTrack] GetFramePresentHeadPose: trackingHandle is zero"); pose = Pose.identity; timestamp = 0; return false; @@ -134,19 +135,30 @@ public bool GetFramePresentHeadPose(ref Pose pose, ref UInt64 timestamp) var acquireTrackingPoseResult = NativeApi.NRHeadTrackingAcquireTrackingPose(m_NativeInterface.TrackingHandle, m_HeadTrackingHandle, timestamp, ref headPoseHandle); if (acquireTrackingPoseResult != NativeResult.Success) { + NRDebugger.Warning("[NativeTrack] GetFramePresentHeadPose: acquireTrackingPoseResult={0}", acquireTrackingPoseResult); return false; } NativeMat4f headpos_native = new NativeMat4f(Matrix4x4.identity); var getPoseResult = NativeApi.NRTrackingPoseGetPose(m_NativeInterface.TrackingHandle, headPoseHandle, ref headpos_native); + // LostTrackingReason lost_tracking_reason = LostTrackingReason.INITIALIZING; + // var result = NativeApi.NRTrackingPoseGetTrackingReason(m_NativeInterface.TrackingHandle, headPoseHandle, ref lost_tracking_reason); + // NRDebugger.Info("[NativeTrack] GetFramePresentHeadPose: getPoseResult={0}, lost_tracking_reason={1}, result={2}", getPoseResult, lost_tracking_reason, result); + if (getPoseResult != NativeResult.Success) { + NRDebugger.Warning("[NativeTrack] GetFramePresentHeadPose: getPoseResult={0}", getPoseResult); return false; } ConversionUtility.ApiPoseToUnityPose(headpos_native, out pose); NativeApi.NRTrackingPoseDestroy(m_NativeInterface.TrackingHandle, headPoseHandle); - return (acquireTrackingPoseResult == NativeResult.Success) && (getPoseResult == NativeResult.Success); + return true; + } + + public bool GetFramePresentTimeByCount(int count, ref UInt64 timestamp) + { + return m_NativeInterface.NativeRenderring.GetFramePresentTimeByCount(ref timestamp, count); } /// Gets tracking lost reason. @@ -159,6 +171,7 @@ public LostTrackingReason GetTrackingLostReason() } LostTrackingReason lost_tracking_reason = LostTrackingReason.INITIALIZING; var result = NativeApi.NRTrackingPoseGetTrackingReason(m_NativeInterface.TrackingHandle, m_HeadTrackingHandle, ref lost_tracking_reason); + // NRDebugger.Info("[NativeTrack] GetTrackingLostReason: {0}, trackingHandle={1}, result={2}", lost_tracking_reason, m_HeadTrackingHandle, result); NativeErrorListener.Check(result, this, "GetTrackingLostReason"); return lost_tracking_reason; } diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/Wrappers/NativeRenderring.cs b/Nreal/Assets/NRSDK/Scripts/Interfaces/Wrappers/NativeRenderring.cs index 7647c1b8..c779e9f7 100644 --- a/Nreal/Assets/NRSDK/Scripts/Interfaces/Wrappers/NativeRenderring.cs +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/Wrappers/NativeRenderring.cs @@ -20,6 +20,13 @@ namespace NRKernal public class NativeRenderring { private UInt64 m_RenderingHandle = 0; + public UInt64 RenderingHandle + { + get + { + return m_RenderingHandle; + } + } public IntPtr FrameInfoPtr; private IntPtr m_FrameTexturesPtr; @@ -64,12 +71,16 @@ public bool Create() NativeApi.NRRenderingInitSetTextureColorSpace(m_RenderingHandle, colorspace); #endif //NativeApi.NRRenderingInitSetFlags(); - return result == NativeResult.Success; } public bool Start() { + if (m_RenderingHandle == 0) + { + return false; + } + var result = NativeApi.NRRenderingStart(m_RenderingHandle); NativeErrorListener.Check(result, this, "Start"); return result == NativeResult.Success; @@ -77,6 +88,11 @@ public bool Start() public bool Pause() { + if (m_RenderingHandle == 0) + { + return false; + } + var result = NativeApi.NRRenderingPause(m_RenderingHandle); NativeErrorListener.Check(result, this, "Pause"); return result == NativeResult.Success; @@ -84,6 +100,11 @@ public bool Pause() public bool Resume() { + if (m_RenderingHandle == 0) + { + return false; + } + var result = NativeApi.NRRenderingResume(m_RenderingHandle); NativeErrorListener.Check(result, this, "Resume"); return result == NativeResult.Success; @@ -95,11 +116,28 @@ public void GetFramePresentTime(ref UInt64 present_time) { return; } + NativeApi.NRRenderingGetFramePresentTime(m_RenderingHandle, ref present_time); } + public bool GetFramePresentTimeByCount(ref UInt64 present_time, int count) + { + if (m_RenderingHandle == 0) + { + return false; + } + + var result = NativeApi.NRRenderingGetFramePresentTimeByCount(m_RenderingHandle, count, ref present_time); + return result == NativeResult.Success; + } + public bool DoRender() { + if (m_RenderingHandle == 0) + { + return false; + } + #if !UNITY_EDITOR FrameInfo framinfo = (FrameInfo)Marshal.PtrToStructure(FrameInfoPtr, typeof(FrameInfo)); var result = NativeApi.NRRenderingDoRender(m_RenderingHandle, framinfo.leftTex, framinfo.rightTex, ref framinfo.headPose); @@ -109,12 +147,34 @@ public bool DoRender() #endif } - public void DoExtendedRenderring() + public void PrepareForFrame() { + if (m_RenderingHandle == 0) + return; + FrameInfo framinfo = (FrameInfo)Marshal.PtrToStructure(FrameInfoPtr, typeof(FrameInfo)); + var frame_handle = framinfo.frameHandle; + // NRDebugger.Info("[NativeRenderer] PrepareForFrame: frameHandle={0}", frame_handle); + NativeApi.NRFrameSetRenderingPose(m_RenderingHandle, frame_handle, ref framinfo.headPose); + NativeApi.NRFrameSetFocusPlane(m_RenderingHandle, frame_handle, ref framinfo.focusPosition, ref framinfo.normalPosition); + NativeApi.NRFrameSetPresentTime(m_RenderingHandle, frame_handle, framinfo.presentTime); + NativeApi.NRFrameSetFlag(m_RenderingHandle, frame_handle, (int)(framinfo.changeFlag)); + } + + public UInt64 CreateFrameHandle() + { UInt64 frame_handle = 0; NativeApi.NRFrameCreate(m_RenderingHandle, ref frame_handle); + return frame_handle; + } + + public void DoExtendedRenderring() + { + FrameInfo framinfo = (FrameInfo)Marshal.PtrToStructure(FrameInfoPtr, typeof(FrameInfo)); + + var frame_handle = framinfo.frameHandle; + // NRDebugger.Info("[NativeRenderer] DoExtendedRenderring: frameHandle={0}", frame_handle); NativeApi.NRFrameSetColorTextures(m_RenderingHandle, frame_handle, m_FrameTexturesPtr, 2); NativeApi.NRFrameSetRenderingPose(m_RenderingHandle, frame_handle, ref framinfo.headPose); NativeApi.NRFrameSetFocusPlanePoint(m_RenderingHandle, frame_handle, ref framinfo.focusPosition); @@ -129,19 +189,30 @@ public void DoExtendedRenderring() NativeApi.NRFrameDestroy(m_RenderingHandle, frame_handle); } - public void WriteFrameData(FrameInfo frame) + public void WriteFrameData(FrameInfo frame, bool directMode) { Marshal.StructureToPtr(frame, FrameInfoPtr, true); - TexturesArray textures = new TexturesArray() + // FrameInfo framinfo = (FrameInfo)Marshal.PtrToStructure(FrameInfoPtr, typeof(FrameInfo)); + // NRDebugger.Info("[NativeRenderer] WriteFrameData: frameHandle={0} -> {1}", frame.frameHandle, framinfo.frameHandle); + + if (directMode) { - leftTex = frame.leftTex, - rightTex = frame.rightTex - }; - Marshal.StructureToPtr(textures, m_FrameTexturesPtr, true); + TexturesArray textures = new TexturesArray() + { + leftTex = frame.leftTex, + rightTex = frame.rightTex + }; + Marshal.StructureToPtr(textures, m_FrameTexturesPtr, true); + } } public bool Destroy() { + if (m_RenderingHandle == 0) + { + return false; + } + NativeResult result = NativeApi.NRRenderingDestroy(m_RenderingHandle); NativeErrorListener.Check(result, this, "Destroy"); return result == NativeResult.Success; @@ -173,18 +244,30 @@ public static extern NativeResult NRRenderingInitSetAndroidSurface( UInt64 rendering_handle, IntPtr android_surface); #endif + //overlay dont need this function [DllImport(NativeConstants.NRNativeLibrary)] public static extern NativeResult NRRenderingDoRenderEx(UInt64 rendering_handle, UInt64 frame_handle); + //overlay dont need this function [DllImport(NativeConstants.NRNativeLibrary)] public static extern NativeResult NRRenderingInitSetFlags(UInt64 rendering_handle, NRRenderingFlags rendering_flags); + //overlay dont need this function [DllImport(NativeConstants.NRNativeLibrary)] public static extern NativeResult NRFrameCreate(UInt64 rendering_handle, ref UInt64 out_frame_handle); + //overlay dont need this function [DllImport(NativeConstants.NRNativeLibrary)] public static extern NativeResult NRFrameDestroy(UInt64 rendering_handle, UInt64 frame_handle); + /// + /// overlay dont need this function + /// + /// + /// + /// + /// + /// [DllImport(NativeConstants.NRNativeLibrary)] public static extern NativeResult NRFrameSetColorTextures(UInt64 rendering_handle, UInt64 frame_handle, IntPtr color_textures, int color_texture_count); @@ -208,6 +291,16 @@ public static extern NativeResult NRFrameSetFocusPlaneNormal(UInt64 rendering_ha public static extern NativeResult NRFrameSetFlag(UInt64 rendering_handle, UInt64 frame_handle, int change_flag); + [DllImport(NativeConstants.NRNativeLibrary)] + public static extern NativeResult NRFrameSetFocusPlane(UInt64 rendering_handle, UInt64 frame_handle, ref NativeVector3f plane_point, ref NativeVector3f plane_normal); + + /// + /// overlay dont need this function + /// + /// + /// + /// + /// [DllImport(NativeConstants.NRNativeLibrary)] public static extern NativeResult NRFrameSetColorTextureType(UInt64 rendering_handle, UInt64 frame_handle, NRTextureType texture_type); @@ -215,6 +308,18 @@ public static extern NativeResult NRFrameSetColorTextureType(UInt64 rendering_ha [DllImport(NativeConstants.NRNativeLibrary)] public static extern NativeResult NRRenderingGetFramePresentTime(UInt64 rendering_handle, ref UInt64 frame_present_time); + [DllImport(NativeConstants.NRNativeLibrary)] + public static extern NativeResult NRRenderingGetFramePresentTimeByCount(UInt64 rendering_handle, + int extra_frame_count, ref UInt64 frame_present_time); + + /// + /// overlay dont need this function + /// + /// + /// + /// + /// + /// [DllImport(NativeConstants.NRNativeLibrary)] public static extern NativeResult NRRenderingDoRender(UInt64 rendering_handle, IntPtr left_eye_texture, IntPtr right_eye_texture, ref NativeMat4f head_pose); diff --git a/Nreal/Assets/NRSDK/Scripts/Interfaces/Wrappers/NativeTracking.cs b/Nreal/Assets/NRSDK/Scripts/Interfaces/Wrappers/NativeTracking.cs index 3edc609d..17fc21f0 100644 --- a/Nreal/Assets/NRSDK/Scripts/Interfaces/Wrappers/NativeTracking.cs +++ b/Nreal/Assets/NRSDK/Scripts/Interfaces/Wrappers/NativeTracking.cs @@ -47,7 +47,7 @@ public bool InitTrackingMode(TrackingMode mode) return false; } NativeResult result = NativeApi.NRTrackingInitSetTrackingMode(m_TrackingHandle, mode); - NativeErrorListener.Check(result, this, "SetTrackingMode"); + NativeErrorListener.Check(result, this, "InitTrackingMode"); return result == NativeResult.Success; } diff --git a/Nreal/Assets/NRSDK/Scripts/Managers/NRSessionManager.cs b/Nreal/Assets/NRSDK/Scripts/Managers/NRSessionManager.cs index 417bb7af..c05aad5e 100644 --- a/Nreal/Assets/NRSDK/Scripts/Managers/NRSessionManager.cs +++ b/Nreal/Assets/NRSDK/Scripts/Managers/NRSessionManager.cs @@ -250,16 +250,31 @@ public void CreateSession(NRSessionBehaviour session) { NRDevice.Instance.Init(); } - catch (Exception) + catch (Exception ex) { + NRDebugger.Error("[NRSessionManager] NRDevice Init failed: {0}", ex.Message); return; } + + var config = NRSessionBehaviour.SessionConfig; + if (config != null) + { + var deviceType = NRDevice.Subsystem.GetDeviceType(); + NRDebugger.Info("[NRSessionManager] targetDeviceType : curDevice={0}, targetDevices={1}", deviceType, config.GetTargetDeviceTypesDesc()); + if (!config.IsTargetDevice(deviceType)) + { + OprateInitException(new NRUnSupportDeviceError(string.Format("Unsuppport running on {0}!", deviceType))); + return; + } + } NativeAPI = new NativeInterface(); TrackableFactory = new NRTrackableManager(); AsyncTaskExecuter.Instance.RunAction(() => { - NRDebugger.Debug("[NRSessionManager] Create tracking"); + NRHMDPoseTracker.AutoAdaptTrackingType(); + NRDebugger.Info("[NRSessionManager] Create tracking : {0}", NRHMDPoseTracker.TrackingMode); + this.AutoAdaptSessionConfig(); switch (NRHMDPoseTracker.TrackingMode) { case NRHMDPoseTracker.TrackingType.Tracking6Dof: @@ -289,6 +304,11 @@ public void CreateSession(NRSessionBehaviour session) #endif NRKernalUpdater.OnPreUpdate -= OnPreUpdate; NRKernalUpdater.OnPreUpdate += OnPreUpdate; +#if !UNITY_EDITOR && !USING_XR_SDK + if (NRSessionBehaviour.gameObject.GetComponent() == null) + NRRenderer = NRSessionBehaviour.gameObject.AddComponent(); +#endif + NRDebugger.Info("[NRSessionManager] CreateSession : AddComponent NRRenderer"); SessionState = SessionState.Initialized; LoadNotification(); @@ -329,12 +349,32 @@ internal void OprateInitException(Exception e) } } - private string GetErrorMsg(Exception error) + /// + /// Get error tip been shown for users. + /// + /// The error exception. + /// Error tip. + private string GetErrorTip(Exception error) + { + string tip = GetErrorTipDesc(error); + if (error is NRNativeError) + { + NativeResult result = (error as NRNativeError).result; + tip = string.Format("Error Code-{0}, {1}", (int)result, tip); + } + return tip; + } + + private string GetErrorTipDesc(Exception error) { if (error is NRGlassesConnectError) { return NativeConstants.GlassesDisconnectErrorTip; } + else if (error is NRGlassesNotAvailbleError) + { + return NativeConstants.GlassesNotAvailbleErrorTip; + } else if (error is NRSdkVersionMismatchError) { return NativeConstants.SdkVersionMismatchErrorTip; @@ -343,6 +383,22 @@ private string GetErrorMsg(Exception error) { return NativeConstants.SdcardPermissionDenyErrorTip; } + else if (error is NRUnSupportDeviceError) + { + return NativeConstants.UnSupportDeviceErrorTip; + } + else if (error is NRDPDeviceNotFindError) + { + return NativeConstants.DPDeviceNotFindErrorTip; + } + else if (error is NRGetDisplayFailureError) + { + return NativeConstants.GetDisplayFailureErrorTip; + } + else if (error is NRDisplayModeMismatchError) + { + return NativeConstants.DisplayModeMismatchErrorTip; + } else { return NativeConstants.UnknowErrorTip; @@ -353,7 +409,7 @@ private string GetErrorMsg(Exception error) /// The message. private void ShowErrorTips(NRKernalError error) { - string msg = GetErrorMsg(error); + string msg = GetErrorTip(error); var sessionbehaviour = GameObject.FindObjectOfType(); NRGlassesInitErrorTip errortips; @@ -381,7 +437,7 @@ private void ShowErrorTips(NRKernalError error) { GameObject.Destroy(virtualdisplay.gameObject); } - + GameObject.DontDestroyOnLoad(errortips); errortips.Init(msg, () => { @@ -398,11 +454,15 @@ private void OnPreUpdate() return; } + if (NRHMDPoseTracker.IsTrackModeChanging || NRHMDPoseTracker.TrackingMode == NRHMDPoseTracker.TrackingType.Tracking0Dof) + return; + #if USING_XR_SDK && !UNITY_EDITOR m_LostTrackingReason = GetLostTrackingReason(); #else m_LostTrackingReason = TrackingSubSystem.GetTrackingLostReason(); - NRFrame.OnUpdate(); + if (NRRenderer == null || NRRenderer.CurrentState == NRRenderer.RendererState.Running) + NRFrame.OnPreUpdate(); #endif } @@ -466,13 +526,11 @@ public void StartSession() AfterInitialized(() => { - NRDebugger.Debug("[NRSessionManager] Start session after initialized"); + NRDebugger.Info("[NRSessionManager] Start session after initialized"); #if !UNITY_EDITOR && !USING_XR_SDK - if (NRSessionBehaviour.gameObject.GetComponent() == null) - { + if (NRRenderer == null) NRRenderer = NRSessionBehaviour.gameObject.AddComponent(); - NRRenderer.Initialize(NRHMDPoseTracker.leftCamera, NRHMDPoseTracker.rightCamera); - } + NRRenderer.Initialize(NRHMDPoseTracker.leftCamera, NRHMDPoseTracker.rightCamera); #endif #if USING_XR_SDK && !UNITY_EDITOR @@ -483,7 +541,7 @@ public void StartSession() TrackableFactory.Start(); AsyncTaskExecuter.Instance.RunAction(() => { - NRDebugger.Debug("[NRSessionManager] Start tracking"); + NRDebugger.Info("[NRSessionManager] Start tracking"); TrackingSubSystem.Start(); SessionState = SessionState.Running; }); @@ -581,6 +639,24 @@ public void SetFPSMode(FrameRateMode mode) #endif } + /// Auto adaption for sessionConfig(PlaneFindingMode&ImageTrackingMode) based on supported feature on current device. + private void AutoAdaptSessionConfig() + { + if (NRDevice.Subsystem.GetDeviceType() == NRDeviceType.NrealAir) + { + if (NRSessionBehaviour.SessionConfig.PlaneFindingMode != TrackablePlaneFindingMode.DISABLE) + { + NRDebugger.Warning("[NRSessionManager] AutoAdaptConfig PlaneFindingMode : {0} => {1}", NRSessionBehaviour.SessionConfig.PlaneFindingMode, TrackablePlaneFindingMode.DISABLE); + NRSessionBehaviour.SessionConfig.PlaneFindingMode = TrackablePlaneFindingMode.DISABLE; + } + if (NRSessionBehaviour.SessionConfig.ImageTrackingMode != TrackableImageFindingMode.DISABLE) + { + NRDebugger.Warning("[NRSessionManager] AutoAdaptConfig ImageTrackingMode : {0} => {1}", NRSessionBehaviour.SessionConfig.ImageTrackingMode, TrackableImageFindingMode.DISABLE); + NRSessionBehaviour.SessionConfig.ImageTrackingMode = TrackableImageFindingMode.DISABLE; + } + } + } + #if USING_XR_SDK && !UNITY_EDITOR [DllImport("NrealXRPlugin", CharSet = CharSet.Auto)] static extern void ShutDownNativeSystems(); diff --git a/Nreal/Assets/NRSDK/Scripts/NRFrame.cs b/Nreal/Assets/NRSDK/Scripts/NRFrame.cs index 2929c652..1b1f5c75 100644 --- a/Nreal/Assets/NRSDK/Scripts/NRFrame.cs +++ b/Nreal/Assets/NRSDK/Scripts/NRFrame.cs @@ -155,7 +155,7 @@ public static NativeMat3f GetDeviceIntrinsicMatrix(NativeDevice device) return NRDevice.Subsystem.GetDeviceIntrinsicMatrix(device); } - /// Get the intrinsic matrix of device. + /// Get the distortion param of device. /// The device intrinsic matrix. public static NRDistortionParams GetDeviceDistortion(NativeDevice device) { @@ -176,7 +176,7 @@ public static NRDistortionParams GetRGBCameraDistortion() return GetDeviceDistortion(NativeDevice.RGB_CAMERA); } - /// Get the resolution of device. + /// Gets the resolution of device. /// device index. /// The device resolution. public static NativeResolution GetDeviceResolution(NativeDevice device) @@ -184,6 +184,15 @@ public static NativeResolution GetDeviceResolution(NativeDevice device) return NRDevice.Subsystem.GetDeviceResolution(device); } + /// Gets device fov. + /// The display index. + /// [in,out] The out device fov. + /// A NativeResult. + public static void GetEyeFov(NativeDevice eye, ref NativeFov4f fov) + { + NRDevice.Subsystem.GetEyeFov(eye, ref fov); + } + private static UInt64 m_CurrentPoseTimeStamp = 0; public static UInt64 CurrentPoseTimeStamp { @@ -196,15 +205,17 @@ public static UInt64 CurrentPoseTimeStamp #endif } } - /// Executes the 'update' action. - internal static void OnUpdate() + + internal static void OnPreUpdate() { // Update head pos Pose pose = Pose.identity; - if (GetFramePresentHeadPose(ref pose, ref m_CurrentPoseTimeStamp) && LostTrackingReason != LostTrackingReason.INITIALIZING) + bool result = GetFramePresentHeadPose(ref pose, ref m_CurrentPoseTimeStamp); + if (result && LostTrackingReason != LostTrackingReason.INITIALIZING) { m_HeadPose = pose; } + // NRDebugger.Info("[NRFrame] OnPreUpdate: pos={0}, headPos={1}, result={2}, LostTrackReason={3}", pose.ToString("F2"), m_HeadPose.ToString("F2"), result, LostTrackingReason); } /// Get the list of trackables with specified filter. diff --git a/Nreal/Assets/NRSDK/Scripts/NRHMDPoseTracker.cs b/Nreal/Assets/NRSDK/Scripts/NRHMDPoseTracker.cs index 45d65dee..66dee743 100644 --- a/Nreal/Assets/NRSDK/Scripts/NRHMDPoseTracker.cs +++ b/Nreal/Assets/NRSDK/Scripts/NRHMDPoseTracker.cs @@ -76,6 +76,9 @@ public TrackingType TrackingMode } } + /// Auto adapt trackingType while not supported. + public bool TrackingModeAutoAdapt = true; + /// Use relative coordinates or not. public bool UseRelative = false; /// The last reason. @@ -86,9 +89,14 @@ public TrackingType TrackingMode /// The center camera. public Camera centerCamera; public Transform centerAnchor; + Pose HeadRotFromCenter = Pose.identity; /// The right camera. public Camera rightCamera; private bool m_ModeChangeLock = false; + public bool IsTrackModeChanging + { + get { return m_ModeChangeLock; } + } #if USING_XR_SDK static internal List nodeStates = new List(); @@ -156,12 +164,52 @@ void OnUpdate() UpdatePoseByTrackingType(); } + /// Auto adaption for current working trackingType based on supported feature on current device. + public void AutoAdaptTrackingType() + { + if (TrackingModeAutoAdapt) + { + TrackingType adjustTrackingType = AdaptTrackingType(m_TrackingType); + if (adjustTrackingType != m_TrackingType) + { + NRDebugger.Warning("[NRHMDPoseTracker] AutoAdaptTrackingType : {0} => {1}", m_TrackingType, adjustTrackingType); + m_TrackingType = adjustTrackingType; + } + } + } + + /// Auto adaption for trackingType based on supported feature on current device. + /// fallback trackingType. + public static TrackingType AdaptTrackingType(TrackingType mode) + { + switch (mode) + { + case TrackingType.Tracking6Dof: + { + if (NRDevice.Subsystem.IsFeatureSupported(NRSupportedFeature.NR_FEATURE_TRACKING_6DOF)) + return TrackingType.Tracking6Dof; + else if (NRDevice.Subsystem.IsFeatureSupported(NRSupportedFeature.NR_FEATURE_TRACKING_3DOF)) + return TrackingType.Tracking3Dof; + else + return TrackingType.Tracking0Dof; + } + case TrackingType.Tracking3Dof: + { + if (NRDevice.Subsystem.IsFeatureSupported(NRSupportedFeature.NR_FEATURE_TRACKING_3DOF)) + return TrackingType.Tracking3Dof; + else + return TrackingType.Tracking0Dof; + } + } + return mode; + } + /// Change mode. /// The trackingtype. /// The mode changed call back and return the result. private bool ChangeMode(TrackingType trackingtype, OnTrackingModeChanged OnModeChanged) { - NRDebugger.Info("[NRHMDPoseTracker] Begin change mode to:" + trackingtype); + NRDebugger.Info("[NRHMDPoseTracker] Begin ChangeMode to:" + trackingtype); TrackingModeChangedResult result = new TrackingModeChangedResult(); if (trackingtype == m_TrackingType || m_ModeChangeLock) { @@ -188,7 +236,7 @@ private bool ChangeMode(TrackingType trackingtype, OnTrackingModeChanged OnModeC result.trackingType = m_TrackingType; OnModeChanged?.Invoke(result); m_ModeChangeLock = false; - NRDebugger.Info("[NRHMDPoseTracker] End Change mode, result:" + result.success); + NRDebugger.Info("[NRHMDPoseTracker] End ChangeMode, result:" + result.success); }); #else m_TrackingType = trackingtype; @@ -201,42 +249,98 @@ private bool ChangeMode(TrackingType trackingtype, OnTrackingModeChanged OnModeC private void OnApplicationPause(bool pause) { + NRDebugger.Info("[NRHMDPoseTracker] OnApplicationPause : pause={0}, headPos={1}", pause, NRFrame.HeadPose.ToString("F2")); if (pause) { this.CacheWorldMatrix(); } } + Pose GetCachPose() + { + Pose cachePose; + if (UseRelative) + cachePose = new Pose(transform.localPosition, transform.localRotation); + else + cachePose = new Pose(transform.position, transform.rotation); + + // remove the neck mode relative position. + if (m_TrackingType != TrackingType.Tracking6Dof) + { + cachePose.position = ConversionUtility.GetPositionFromTMatrix(cachedWorldMatrix); + } + return cachePose; + } + /// Change to 6 degree of freedom. - public bool ChangeTo6Dof(OnTrackingModeChanged OnModeChanged) { return ChangeMode(TrackingType.Tracking6Dof, OnModeChanged); } + /// The mode changed call back and return the result. + /// Auto trackingType adaption based on supported features on current device. + public bool ChangeTo6Dof(OnTrackingModeChanged OnModeChanged, bool autoAdapt = false) + { + var trackType = TrackingType.Tracking6Dof; + if (autoAdapt) + trackType = AdaptTrackingType(trackType); + Pose cachePose = GetCachPose(); + return ChangeMode(trackType, (NRHMDPoseTracker.TrackingModeChangedResult result) => + { + if (result.success) + CacheWorldMatrix(cachePose); + if (OnModeChanged != null) + OnModeChanged(result); + }); + } /// Change to 3 degree of freedom. - public bool ChangeTo3Dof(OnTrackingModeChanged OnModeChanged) { return ChangeMode(TrackingType.Tracking3Dof, OnModeChanged); } + /// The mode changed call back and return the result. + /// Auto trackingType adaption based on supported features on current device. + public bool ChangeTo3Dof(OnTrackingModeChanged OnModeChanged, bool autoAdapt = false) + { + var trackType = TrackingType.Tracking3Dof; + if (autoAdapt) + trackType = AdaptTrackingType(trackType); + Pose cachePose = GetCachPose(); + return ChangeMode(trackType, (NRHMDPoseTracker.TrackingModeChangedResult result) => + { + if (result.success) + CacheWorldMatrix(cachePose); + if (OnModeChanged != null) + OnModeChanged(result); + }); + } /// Change to 0 degree of freedom. - public bool ChangeTo0Dof(OnTrackingModeChanged OnModeChanged) { return ChangeMode(TrackingType.Tracking0Dof, OnModeChanged); } + /// The mode changed call back and return the result. + /// Auto trackingType adaption based on supported features on current device. + public bool ChangeTo0Dof(OnTrackingModeChanged OnModeChanged, bool autoAdapt = false) + { + var trackType = TrackingType.Tracking0Dof; + if (autoAdapt) + trackType = AdaptTrackingType(trackType); + Pose cachePose = GetCachPose(); + return ChangeMode(trackType, (NRHMDPoseTracker.TrackingModeChangedResult result) => + { + if (result.success) + CacheWorldMatrix(cachePose); + if (OnModeChanged != null) + OnModeChanged(result); + }); + } private Matrix4x4 cachedWorldMatrix = Matrix4x4.identity; /// Cache the world matrix. public void CacheWorldMatrix() { - Pose cachePose; - if (UseRelative) - { - cachePose = new Pose(transform.localPosition, transform.localRotation); - } - else - { - cachePose = new Pose(transform.position, transform.rotation); - } + Pose cachePose = GetCachPose(); CacheWorldMatrix(cachePose); } public void CacheWorldMatrix(Pose pose) { + NRDebugger.Info("[NRHMDPoseTracker] CacheWorldMatrix : UseRelative={0}, trackType={1}, pos={2}", UseRelative, m_TrackingType, pose.ToString("F2")); Plane horizontal_plane = new Plane(Vector3.up, Vector3.zero); Vector3 forward_use_gravity = horizontal_plane.ClosestPointOnPlane(pose.forward).normalized; Quaternion rotation_use_gravity = Quaternion.LookRotation(forward_use_gravity, Vector3.up); + // NRDebugger.Info("CacheWorldMatrix Adjust : pos={0}, {1}", pose.position.ToString("F2"), rotation_use_gravity.ToString("F2")); cachedWorldMatrix = ConversionUtility.GetTMatrix(pose.position, rotation_use_gravity); } @@ -311,10 +415,16 @@ private IEnumerator Initialize() rightCamera.enabled = false; bool result; var matrix_data = NRFrame.GetEyeProjectMatrix(out result, leftCamera.nearClipPlane, leftCamera.farClipPlane); + Debug.Assert(result, "[NRHMDPoseTracker] GetEyeProjectMatrix failed."); if (result) { + NRDebugger.Info("[NRHMDPoseTracker] Left Camera Project Matrix : {0}", matrix_data.LEyeMatrix.ToString()); + NRDebugger.Info("[NRHMDPoseTracker] RightCamera Project Matrix : {0}", matrix_data.REyeMatrix.ToString()); + leftCamera.projectionMatrix = matrix_data.LEyeMatrix; rightCamera.projectionMatrix = matrix_data.REyeMatrix; + // set center camera's projection matrix with LEyeMatrix, in case some logic is using it + centerCamera.projectionMatrix = matrix_data.LEyeMatrix; var eyeposeFromHead = NRFrame.EyePoseFromHead; leftCamera.transform.localPosition = eyeposeFromHead.LEyePose.position; @@ -323,8 +433,11 @@ private IEnumerator Initialize() rightCamera.transform.localRotation = eyeposeFromHead.REyePose.rotation; centerAnchor.localPosition = centerCamera.transform.localPosition = (leftCamera.transform.localPosition + rightCamera.transform.localPosition) * 0.5f; centerAnchor.localRotation = centerCamera.transform.localRotation = Quaternion.Lerp(leftCamera.transform.localRotation, rightCamera.transform.localRotation, 0.5f); + var centerRotMatrix = ConversionUtility.GetTMatrix(Vector3.zero, centerAnchor.localRotation).inverse; + HeadRotFromCenter = new Pose(Vector3.zero, ConversionUtility.GetRotationFromTMatrix(centerRotMatrix)); } #endif + NRDebugger.Info("[NRHMDPoseTracker] Initialized success."); } @@ -342,8 +455,10 @@ private void UpdatePoseByTrackingType() centerAnchor.localPosition = centerPose.position; centerAnchor.localRotation = centerPose.rotation; #else - headPose = NRFrame.HeadPose; + headPose = m_TrackingType == TrackingType.Tracking0Dof ? HeadRotFromCenter : NRFrame.HeadPose; headPose = cachedWorldMatrix.Equals(Matrix4x4.identity) ? headPose : ApplyWorldMatrix(headPose); + + // NRDebugger.Info("[NRHMDPoseTracker] UpdatePose: trackType={2}, pos={0} --> {1}", NRFrame.HeadPose.ToString("F2"), headPose.ToString("F2"), m_TrackingType); #endif switch (m_TrackingType) { @@ -360,6 +475,7 @@ private void UpdatePoseByTrackingType() } break; case TrackingType.Tracking3Dof: + case TrackingType.Tracking0Dof: if (UseRelative) { transform.localRotation = headPose.rotation; @@ -379,7 +495,6 @@ private void UpdatePoseByTrackingType() #endif } break; - case TrackingType.Tracking0Dof: default: break; } @@ -388,7 +503,8 @@ private void UpdatePoseByTrackingType() /// Check hmd pose state. private void CheckHMDPoseState() { - if (NRFrame.SessionStatus != SessionState.Running || TrackingMode != TrackingType.Tracking6Dof) + if (NRFrame.SessionStatus != SessionState.Running || + TrackingMode == TrackingType.Tracking0Dof || IsTrackModeChanging) { return; } diff --git a/Nreal/Assets/NRSDK/Scripts/NRKernalException.cs b/Nreal/Assets/NRSDK/Scripts/NRKernalException.cs index cdb9543e..db4c079b 100644 --- a/Nreal/Assets/NRSDK/Scripts/NRKernalException.cs +++ b/Nreal/Assets/NRSDK/Scripts/NRKernalException.cs @@ -12,8 +12,8 @@ public enum Level public class NRKernalError : ApplicationException { public Level level; - /// The error. - protected string error; + /// The error message. + protected string msg; /// The inner exception. protected Exception innerException; @@ -23,106 +23,179 @@ public class NRKernalError : ApplicationException public NRKernalError(string msg, Level level = Level.Normal, Exception innerException = null) : base(msg) { this.innerException = innerException; - this.error = msg; + this.msg = msg; this.level = level; } /// Gets the error. /// The error. - public string GetError() + virtual public string GetErrorMsg() { - return error; + return msg; + } + } + + #region native error + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + /// /// internal errors + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + /// A nr kernal error. + public class NRNativeError : NRKernalError + { + public NativeResult result; + /// Constructor. + /// The message. + /// (Optional) The inner exception. + public NRNativeError(NativeResult result, string msg, Level level = Level.Normal, Exception innerException = null) : base(msg, level, innerException) + { + this.result = result; + } + /// Gets the error. + /// The error. + override public string GetErrorMsg() + { + return string.Format("Error Code-{0}: {1}", (int)result, msg); } } /// A nr invalid argument error. - public class NRInvalidArgumentError : NRKernalError + public class NRInvalidArgumentError : NRNativeError { /// Constructor. /// The message. /// (Optional) The inner exception. - public NRInvalidArgumentError(string msg, Exception innerException = null) : base(msg, Level.Normal, innerException) + public NRInvalidArgumentError(NativeResult result, string msg, Exception innerException = null) : base(result, msg, Level.Normal, innerException) { } } /// A nr not enough memory error. - public class NRNotEnoughMemoryError : NRKernalError + public class NRNotEnoughMemoryError : NRNativeError { /// Constructor. /// The message. /// (Optional) The inner exception. - public NRNotEnoughMemoryError(string msg, Exception innerException = null) : base(msg, Level.High, innerException) + public NRNotEnoughMemoryError(NativeResult result, string msg, Exception innerException = null) : base(result, msg, Level.High, innerException) { } } /// A nr sdcard permission deny error. - public class NRSdcardPermissionDenyError : NRKernalError + public class NRSdcardPermissionDenyError : NRNativeError { /// Constructor. /// The message. /// (Optional) The inner exception. - public NRSdcardPermissionDenyError(string msg, Exception innerException = null) : base(msg, Level.High, innerException) + public NRSdcardPermissionDenyError(NativeResult result, string msg, Exception innerException = null) : base(result, msg, Level.High, innerException) { } } /// A nr un supported error. - public class NRUnSupportedError : NRKernalError + public class NRUnSupportedError : NRNativeError { /// Constructor. /// The message. /// (Optional) The inner exception. - public NRUnSupportedError(string msg, Exception innerException = null) : base(msg, Level.High, innerException) + public NRUnSupportedError(NativeResult result, string msg, Exception innerException = null) : base(result, msg, Level.High, innerException) { } } /// A nr glasses connect error. - public class NRGlassesConnectError : NRKernalError + public class NRGlassesConnectError : NRNativeError { /// Constructor. /// The message. /// (Optional) The inner exception. - public NRGlassesConnectError(string msg, Exception innerException = null) : base(msg, Level.High, innerException) + public NRGlassesConnectError(NativeResult result, string msg, Exception innerException = null) : base(result, msg, Level.High, innerException) { } } /// A nr sdk version mismatch error. - public class NRSdkVersionMismatchError : NRKernalError + public class NRSdkVersionMismatchError : NRNativeError { /// Constructor. /// The message. /// (Optional) The inner exception. - public NRSdkVersionMismatchError(string msg, Exception innerException = null) : base(msg, Level.High, innerException) + public NRSdkVersionMismatchError(NativeResult result, string msg, Exception innerException = null) : base(result, msg, Level.High, innerException) { } } - /// A nrrgb camera device not find error. - public class NRRGBCameraDeviceNotFindError : NRKernalError + /// A nr rgb camera device not find error. + public class NRRGBCameraDeviceNotFindError : NRNativeError { /// Constructor. /// The message. /// (Optional) The inner exception. - public NRRGBCameraDeviceNotFindError(string msg, Exception innerException = null) : base(msg, Level.Normal, innerException) + public NRRGBCameraDeviceNotFindError(NativeResult result, string msg, Exception innerException = null) : base(result, msg, Level.Normal, innerException) { } } - /// A nrdp device not find error. - public class NRDPDeviceNotFindError : NRKernalError + /// Display device not find error. + public class NRDPDeviceNotFindError : NRNativeError { /// Constructor. /// The message. /// (Optional) The inner exception. - public NRDPDeviceNotFindError(string msg, Exception innerException = null) : base(msg, Level.High, innerException) + public NRDPDeviceNotFindError(NativeResult result, string msg, Exception innerException = null) : base(result, msg, Level.High, innerException) { } } - public class NRMissingKeyComponentError : NRKernalError + /// MRSpace display device not find error. + public class NRGetDisplayFailureError : NRNativeError + { + /// Constructor. + /// The message. + /// (Optional) The inner exception. + public NRGetDisplayFailureError(NativeResult result, string msg, Exception innerException = null) : base(result, msg, Level.High, innerException) + { + } + } + + /// Display Mode mismatch error, as MRSpace mode is needed. + public class NRDisplayModeMismatchError : NRNativeError + { + /// Constructor. + /// The message. + /// (Optional) The inner exception. + public NRDisplayModeMismatchError(NativeResult result, string msg, Exception innerException = null) : base(result, msg, Level.High, innerException) + { + } + } + + /// A device not support hand tracking calculation error. + public class NRUnSupportedHandtrackingCalculationError : NRNativeError + { + /// Constructor. + /// The message. + /// (Optional) The inner exception. + public NRUnSupportedHandtrackingCalculationError(NativeResult result, string msg, Exception innerException = null) : base(result, msg, Level.Normal, innerException) + { + } + } + #endregion + + #region native error + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + /// /// internal errors + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + /// A nr internal error. + public class NRInternalError : NRKernalError + { + /// Constructor. + /// The message. + /// (Optional) The inner exception. + public NRInternalError(string msg, Level level = Level.Normal, Exception innerException = null) : base(msg, level, innerException) + { + } + } + + + public class NRMissingKeyComponentError : NRInternalError { /// Constructor. /// The message. @@ -132,7 +205,7 @@ public NRMissingKeyComponentError(string msg, Exception innerException = null) : } } - public class NRPermissionDenyError : NRKernalError + public class NRPermissionDenyError : NRInternalError { /// Constructor. /// The message. @@ -142,14 +215,26 @@ public NRPermissionDenyError(string msg, Exception innerException = null) : base } } - /// A device not support hand tracking calculation error. - public class NRUnSupportedHandtrackingCalculationError : NRKernalError + + public class NRUnSupportDeviceError : NRInternalError + { + /// Constructor. + /// The message. + /// (Optional) The inner exception. + public NRUnSupportDeviceError(string msg, Exception innerException = null) : base(msg, Level.High, innerException) + { + } + } + + /// A nr glasses not available error. + public class NRGlassesNotAvailbleError : NRInternalError { /// Constructor. /// The message. /// (Optional) The inner exception. - public NRUnSupportedHandtrackingCalculationError(string msg, Exception innerException = null) : base(msg, Level.Normal, innerException) + public NRGlassesNotAvailbleError(string msg, Exception innerException = null) : base(msg, Level.High, innerException) { } } + #endregion } diff --git a/Nreal/Assets/NRSDK/Scripts/NRNotificationListener.cs b/Nreal/Assets/NRSDK/Scripts/NRNotificationListener.cs index 780bc991..e182aa74 100644 --- a/Nreal/Assets/NRSDK/Scripts/NRNotificationListener.cs +++ b/Nreal/Assets/NRSDK/Scripts/NRNotificationListener.cs @@ -205,7 +205,7 @@ private void OnSessionError(NRKernalError exception) { KernalError = exception; - // Trigger the notification window when the error is NRRGBCameraDeviceNotFindError + // Trigger the notification window if (KernalError is NRRGBCameraDeviceNotFindError || KernalError is NRPermissionDenyError || KernalError is NRUnSupportedHandtrackingCalculationError) @@ -251,7 +251,7 @@ public string ErrorContent } else { - return KernalError.GetError(); + return KernalError.GetErrorMsg(); } } } diff --git a/Nreal/Assets/NRSDK/Scripts/NRProjectConfig.cs b/Nreal/Assets/NRSDK/Scripts/NRProjectConfig.cs new file mode 100644 index 00000000..55fb3482 --- /dev/null +++ b/Nreal/Assets/NRSDK/Scripts/NRProjectConfig.cs @@ -0,0 +1,37 @@ +/**************************************************************************** +* Copyright 2019 Nreal Techonology Limited. All rights reserved. +* +* This file is part of NRSDK. +* +* https://www.nreal.ai/ +* +*****************************************************************************/ + +namespace NRKernal +{ + using System.Collections.Generic; + using UnityEngine; + + [System.Serializable] + public class NRProjectConfig: ScriptableObject + { + public List targetDeviceTypes = new List { + NRDeviceType.NrealLight, + NRDeviceType.NrealAir, + }; + + bool autoAdaptTrackingMode = true; + + public string GetTargetDeviceTypesDesc() + { + string devices = string.Empty; + foreach (var device in targetDeviceTypes) + { + if (devices != string.Empty) + devices += "|"; + devices += device; + } + return devices; + } + } +} diff --git a/Nreal/Assets/NRSDK/Scripts/NRProjectConfig.cs.meta b/Nreal/Assets/NRSDK/Scripts/NRProjectConfig.cs.meta new file mode 100644 index 00000000..e04c9552 --- /dev/null +++ b/Nreal/Assets/NRSDK/Scripts/NRProjectConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7a1762186822e43a7a4a471f83f53761 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Nreal/Assets/NRSDK/Scripts/NRRenderer.cs b/Nreal/Assets/NRSDK/Scripts/NRRenderer.cs index b4389621..77c2f91c 100644 --- a/Nreal/Assets/NRSDK/Scripts/NRRenderer.cs +++ b/Nreal/Assets/NRSDK/Scripts/NRRenderer.cs @@ -17,6 +17,15 @@ namespace NRKernal using System.Runtime.InteropServices; using UnityEngine; + public interface IFrameProcessor + { + UInt64 GetFrameHandle(); + void SubmitFrame(); + void Update(); + void Initialize(NativeRenderring nativeRenderer); + void Destroy(); + } + /// /// NRNativeRender operate rendering-related things, provides the feature of optimized rendering /// and low latency. @@ -35,7 +44,8 @@ public class NRRenderer : MonoBehaviour private const int STARTNATIVERENDEREVENT = 0x0002; private const int RESUMENATIVERENDEREVENT = 0x0003; private const int PAUSENATIVERENDEREVENT = 0x0004; - private const int STOPNATIVERENDEREVENT = 0x0005; + // private const int STOPNATIVERENDEREVENT = 0x0005; + private const int SUBMIT_EVENT = 0x0006; public enum Eyes { @@ -84,6 +94,8 @@ static NativeRenderring NativeRenderring private RenderTexture[] eyeTextures; /// Dictionary of rights. private Dictionary m_RTDict = new Dictionary(); + /// Frame process. + private IFrameProcessor m_FrameProcessor; /// Values that represent renderer states. public enum RendererState @@ -95,7 +107,7 @@ public enum RendererState Destroyed } - private bool m_IsTrackingLost = false; + private bool m_IsTrackChanging = false; private RenderTexture m_HijackRenderTexture; /// The current state. @@ -108,6 +120,10 @@ public RendererState CurrentState { return m_CurrentState; } + set + { + m_CurrentState = value; + } } public NRTrackingModeChangedListener TrackingLostListener @@ -166,16 +182,16 @@ public void Initialize(Camera leftcamera, Camera rightcamera) } } - private void OnTrackStateChanged(bool onSwitchingMode, RenderTexture rt) + private void OnTrackStateChanged(bool trackChanging, RenderTexture rt) { - if (onSwitchingMode) + if (trackChanging) { - m_IsTrackingLost = true; + m_IsTrackChanging = true; m_HijackRenderTexture = rt; } else { - m_IsTrackingLost = false; + m_IsTrackChanging = false; m_HijackRenderTexture = null; } } @@ -200,13 +216,22 @@ private IEnumerator StartUp() yield return new WaitForEndOfFrame(); NRDebugger.Info("[NRRender] StartUp"); - CreateRenderTextures(); #if !UNITY_EDITOR NativeRenderring.Create(); StartCoroutine(RenderCoroutine()); #endif - m_CurrentState = RendererState.Running; GL.IssuePluginEvent(RenderThreadHandlePtr, STARTNATIVERENDEREVENT); + if (m_FrameProcessor == null) + CreateRenderTextures(); + NRDebugger.Info("[NRRender] StartUp Finish"); + } + + /// Set frame processor. + /// Frame processor. + public void SetFrameProcessor(IFrameProcessor processor) + { + NRDebugger.Info("[NRRender] SetFrameProcessor"); + m_FrameProcessor = processor; } /// Pause render. @@ -217,7 +242,6 @@ public void Pause() { return; } - m_CurrentState = RendererState.Paused; GL.IssuePluginEvent(RenderThreadHandlePtr, PAUSENATIVERENDEREVENT); } @@ -235,23 +259,29 @@ private void DelayResume() { return; } - m_CurrentState = RendererState.Running; GL.IssuePluginEvent(RenderThreadHandlePtr, RESUMENATIVERENDEREVENT); } #if !UNITY_EDITOR void Update() { - if (m_CurrentState == RendererState.Running && !m_IsTrackingLost) + if (m_CurrentState == RendererState.Running && !m_IsTrackChanging) { - leftCamera.targetTexture = eyeTextures[currentEyeTextureIdx]; - rightCamera.targetTexture = eyeTextures[currentEyeTextureIdx + 1]; - currentEyeTextureIdx = nextEyeTextureIdx; - nextEyeTextureIdx = (nextEyeTextureIdx + 2) % EyeTextureCount; + if (m_FrameProcessor == null) + { + leftCamera.targetTexture = eyeTextures[currentEyeTextureIdx]; + rightCamera.targetTexture = eyeTextures[currentEyeTextureIdx + 1]; + currentEyeTextureIdx = nextEyeTextureIdx; + nextEyeTextureIdx = (nextEyeTextureIdx + 2) % EyeTextureCount; + } + else + { + m_FrameProcessor.Update(); + } leftCamera.enabled = true; rightCamera.enabled = true; } - else if(m_IsTrackingLost) + else if(m_IsTrackChanging) { leftCamera.enabled = false; rightCamera.enabled = false; @@ -306,6 +336,7 @@ private IEnumerator RenderCoroutine() { yield return delay; + // NRDebugger.Info("[NRRender] RenderCoroutine: state={0}, isTrackingChanging={1}, frameProcessor={2}", m_CurrentState, m_IsTrackChanging, m_FrameProcessor != null); if (m_CurrentState != RendererState.Running) { continue; @@ -315,21 +346,38 @@ private IEnumerator RenderCoroutine() Pose unityPose = NRFrame.HeadPose; ConversionUtility.UnityPoseToApiPose(unityPose, out apiPose); FrameInfo info = new FrameInfo(IntPtr.Zero, IntPtr.Zero, apiPose, new Vector3(0, 0, -m_FocusDistance), - Vector3.forward, NRFrame.CurrentPoseTimeStamp, m_FrameChangedType, NRTextureType.NR_TEXTURE_2D); - if (!m_IsTrackingLost) + Vector3.forward, NRFrame.CurrentPoseTimeStamp, m_FrameChangedType, NRTextureType.NR_TEXTURE_2D, 0); + + if (m_FrameProcessor == null) { - IntPtr left_target, right_target; - if (!m_RTDict.TryGetValue(leftCamera.targetTexture, out left_target)) continue; - if (!m_RTDict.TryGetValue(rightCamera.targetTexture, out right_target)) continue; - info.leftTex = left_target; - info.rightTex = right_target; + if (m_IsTrackChanging) + { + info.leftTex = m_HijackRenderTexture.GetNativeTexturePtr(); + info.rightTex = m_HijackRenderTexture.GetNativeTexturePtr(); + } + else + { + IntPtr left_target, right_target; + if (!m_RTDict.TryGetValue(leftCamera.targetTexture, out left_target)) continue; + if (!m_RTDict.TryGetValue(rightCamera.targetTexture, out right_target)) continue; + info.leftTex = left_target; + info.rightTex = right_target; + } + + UInt64 frame_handle = NativeRenderring.CreateFrameHandle(); + info.frameHandle = frame_handle; + // NRDebugger.Info("[NRRender] RenderCoroutine: frameHandle={0}", frame_handle); + NativeRenderring?.WriteFrameData(info, true); + GL.IssuePluginEvent(RenderThreadHandlePtr, SETRENDERTEXTUREEVENT); } else { - info.leftTex = m_HijackRenderTexture.GetNativeTexturePtr(); - info.rightTex = m_HijackRenderTexture.GetNativeTexturePtr(); + info.frameHandle = m_FrameProcessor.GetFrameHandle(); + // NRDebugger.Info("[NRRender] RenderCoroutine FrameProcessor: frameHandle={0}", info.frameHandle); + NativeRenderring?.WriteFrameData(info, false); + GL.IssuePluginEvent(RenderThreadHandlePtr, SUBMIT_EVENT); } - SetRenderFrameInfo(info); + // reset focuse distance and frame changed type to default value every frame. m_FocusDistance = m_DefaultFocusDistance; m_FrameChangedType = NRFrameFlags.NR_FRAME_CHANGED_NONE; @@ -350,36 +398,44 @@ public void SetFocusDistance(float distance) [MonoPInvokeCallback(typeof(RenderEventDelegate))] private static void RunOnRenderThread(int eventID) { + if (eventID != SETRENDERTEXTUREEVENT && eventID != SUBMIT_EVENT) + NRDebugger.Info("[NRRender] RunOnRenderThread : eventID={0}", eventID); + if (eventID == STARTNATIVERENDEREVENT) { NativeRenderring?.Start(); + var renderer = NRSessionManager.Instance.NRRenderer; + renderer.CurrentState = RendererState.Running; + + if (renderer.m_FrameProcessor != null) + renderer.m_FrameProcessor.Initialize(NativeRenderring); } else if (eventID == RESUMENATIVERENDEREVENT) { NativeRenderring?.Resume(); + NRSessionManager.Instance.NRRenderer.CurrentState = RendererState.Running; } else if (eventID == PAUSENATIVERENDEREVENT) { + NRSessionManager.Instance.NRRenderer.CurrentState = RendererState.Paused; NativeRenderring?.Pause(); } - else if (eventID == STOPNATIVERENDEREVENT) - { - NativeRenderring?.Destroy(); - NativeRenderring = null; - NRDevice.Instance.Destroy(); - } + // else if (eventID == STOPNATIVERENDEREVENT) + // { + // NativeRenderring?.Destroy(); + // NativeRenderring = null; + // NRDevice.Instance.Destroy(); + // } else if (eventID == SETRENDERTEXTUREEVENT) { NativeRenderring?.DoExtendedRenderring(); } - } - - /// Sets render frame information. - /// The frame. - private static void SetRenderFrameInfo(FrameInfo frame) - { - NativeRenderring.WriteFrameData(frame); - GL.IssuePluginEvent(RenderThreadHandlePtr, SETRENDERTEXTUREEVENT); + else if (eventID == SUBMIT_EVENT) + { + var renderer = NRSessionManager.Instance.NRRenderer; + NativeRenderring?.PrepareForFrame(); + renderer.m_FrameProcessor.SubmitFrame(); + } } public void Destroy() @@ -391,6 +447,8 @@ public void Destroy() m_CurrentState = RendererState.Destroyed; //GL.IssuePluginEvent(RenderThreadHandlePtr, STOPNATIVERENDEREVENT); + if (m_FrameProcessor != null) + m_FrameProcessor.Destroy(); NativeRenderring?.Destroy(); NativeRenderring = null; } diff --git a/Nreal/Assets/NRSDK/Scripts/NRSessionBehaviour.cs b/Nreal/Assets/NRSDK/Scripts/NRSessionBehaviour.cs index 7eb17cae..3b8bf247 100644 --- a/Nreal/Assets/NRSDK/Scripts/NRSessionBehaviour.cs +++ b/Nreal/Assets/NRSDK/Scripts/NRSessionBehaviour.cs @@ -17,8 +17,13 @@ namespace NRKernal [ScriptOrder(NativeConstants.NRSESSIONBEHAVIOUR_ORDER)] public class NRSessionBehaviour : SingletonBehaviour { + /// LogVevel of NRSDK should be while release. + [Tooltip("LogLevel of NRSDK.")] + [SerializeField] + LogLevel LogLevel = LogLevel.Info; /// The SessionConfig of nrsession. [Tooltip("A scriptable object specifying the NRSDK session configuration.")] + [SerializeField] public NRSessionConfig SessionConfig; /// @@ -27,6 +32,15 @@ public class NRSessionBehaviour : SingletonBehaviour /// base.Awake() to ensure the static Instance reference is properly created. new void Awake() { +#if NRDEBUG + NRDebugger.logLevel = LogLevel.All; +#elif !UNITY_EDITOR + NRDebugger.logLevel = Debug.isDebugBuild ? LogLevel.Debug : LogLevel; +#else + NRDebugger.logLevel = LogLevel; +#endif + Debug.LogFormat("[SessionBehaviour] Awake: logLevel={0}", NRDebugger.logLevel); + base.Awake(); if (isDirty) return; diff --git a/Nreal/Assets/NRSDK/Scripts/NRSessionConfig.cs b/Nreal/Assets/NRSDK/Scripts/NRSessionConfig.cs index bbdb3bee..55e293b5 100644 --- a/Nreal/Assets/NRSDK/Scripts/NRSessionConfig.cs +++ b/Nreal/Assets/NRSDK/Scripts/NRSessionConfig.cs @@ -11,6 +11,7 @@ namespace NRKernal { using UnityEngine; using UnityEngine.Serialization; + using System.Collections.Generic; /// A configuration used to track the world. [CreateAssetMenu(fileName = "NRKernalSessionConfig", menuName = "NRSDK/SessionConfig", order = 1)] @@ -44,10 +45,17 @@ public class NRSessionConfig : ScriptableObject public NRTrackingModeChangedTip TrackingModeChangeTipPrefab; /// It will be read automatically from PlayerdSetting. - [Tooltip("It will be read automatically from PlayerdSetting. ")] [HideInInspector] - public bool UseMultiThread = false; - + public bool UseMultiThread + { + get; + private set; + } + + /// The NRProjectConfig whick is global unique. All NRSessionConfig in project should refer to the same NRProjectConfig. + [SerializeField] + [Tooltip("Donot change this manually, it always refer to the NRProjectConfig whick is global unique.")] + NRProjectConfig ProjectConfig; /// ValueType check if two NRSessionConfig objects are equal. /// . @@ -68,6 +76,9 @@ public override bool Equals(object other) return false; } + if (ProjectConfig != otherConfig.ProjectConfig) + return false; + return true; } @@ -89,6 +100,29 @@ public void CopyFrom(NRSessionConfig other) TrackingModeChangeTipPrefab = other.TrackingModeChangeTipPrefab; UseMultiThread = other.UseMultiThread; EnableNotification = other.EnableNotification; + ProjectConfig = other.ProjectConfig; + } + + public bool IsTargetDevice(NRDeviceType device) + { + return ProjectConfig ? ProjectConfig.targetDeviceTypes.Contains(device) : false; + } + + public string GetTargetDeviceTypesDesc() + { + return ProjectConfig ? ProjectConfig.GetTargetDeviceTypesDesc() : string.Empty; + } + +#if UNITY_EDITOR + public void SetProjectConfig(NRProjectConfig projectConfig) + { + ProjectConfig = projectConfig; + } + + public void SetUseMultiThread(bool useMultiThread) + { + UseMultiThread = useMultiThread; } +#endif } } diff --git a/Nreal/Assets/NRSDK/Scripts/NRTrackingModeChangedListener.cs b/Nreal/Assets/NRSDK/Scripts/NRTrackingModeChangedListener.cs index 439e1c27..7b1a8ce2 100644 --- a/Nreal/Assets/NRSDK/Scripts/NRTrackingModeChangedListener.cs +++ b/Nreal/Assets/NRSDK/Scripts/NRTrackingModeChangedListener.cs @@ -15,7 +15,7 @@ namespace NRKernal public class NRTrackingModeChangedListener { - public delegate void OnTrackStateChangedDel(bool onSwitchingMode, RenderTexture rt); + public delegate void OnTrackStateChangedDel(bool trackChanging, RenderTexture rt); public event OnTrackStateChangedDel OnTrackStateChanged; private NRTrackingModeChangedTip m_LostTrackingTip; private Coroutine m_EnableRenderCamera; @@ -30,7 +30,7 @@ public NRTrackingModeChangedListener() private void OnChangeTrackingMode(NRHMDPoseTracker.TrackingType origin, NRHMDPoseTracker.TrackingType target) { - NRDebugger.Info("[NRTrackingLostListener] OnChangeTrackingMode origin:{0} target:{1}", origin, target); + NRDebugger.Info("[NRTrackingModeChangedListener] OnChangeTrackingMode origin:{0} target:{1}", origin, target); if (target == NRHMDPoseTracker.TrackingType.Tracking0Dof) { return; @@ -58,13 +58,15 @@ public IEnumerator EnableTrackingInitializingRenderCamera() yield return endofFrame; yield return endofFrame; yield return endofFrame; - NRDebugger.Info("[NRTrackingLostListener] Enter tracking initialize mode..."); + NRDebugger.Info("[NRTrackingModeChangedListener] Enter tracking initialize mode..."); OnTrackStateChanged?.Invoke(true, m_LostTrackingTip.RT); - while ((NRFrame.LostTrackingReason != LostTrackingReason.NONE || (Time.realtimeSinceStartup - begin_time) < MinTimeLastLimited) + NRHMDPoseTracker postTracker = NRSessionManager.Instance.NRHMDPoseTracker; + while ((NRFrame.LostTrackingReason != LostTrackingReason.NONE || postTracker.IsTrackModeChanging || (Time.realtimeSinceStartup - begin_time) < MinTimeLastLimited) && (Time.realtimeSinceStartup - begin_time) < MaxTimeLastLimited) { - NRDebugger.Info("[NRTrackingLostListener] Wait for tracking ready..." + NRFrame.LostTrackingReason); + NRDebugger.Info("[NRTrackingModeChangedListener] Wait for tracking: modeChanging={0}, lostTrackReason={1}", + postTracker.IsTrackModeChanging, NRFrame.LostTrackingReason); yield return endofFrame; } @@ -78,16 +80,15 @@ public IEnumerator EnableTrackingInitializingRenderCamera() public IEnumerator DisableTrackingInitializingRenderCamera() { - if (m_LostTrackingTip == null) + if (m_LostTrackingTip != null) { - m_LostTrackingTip = NRTrackingModeChangedTip.Create(); + m_LostTrackingTip.gameObject.SetActive(false); } - m_LostTrackingTip.gameObject.SetActive(false); yield return new WaitForEndOfFrame(); yield return new WaitForEndOfFrame(); yield return new WaitForEndOfFrame(); OnTrackStateChanged?.Invoke(false, m_LostTrackingTip.RT); - NRDebugger.Info("[NRTrackingLostListener] Exit tracking initialize mode..."); + NRDebugger.Info("[NRTrackingModeChangedListener] Exit tracking initialize mode..."); } } } diff --git a/Nreal/Assets/NRSDK/Scripts/NRVirtualDisplayer.cs b/Nreal/Assets/NRSDK/Scripts/NRVirtualDisplayer.cs index 8783be28..05e462c5 100644 --- a/Nreal/Assets/NRSDK/Scripts/NRVirtualDisplayer.cs +++ b/Nreal/Assets/NRSDK/Scripts/NRVirtualDisplayer.cs @@ -31,7 +31,7 @@ public class NRVirtualDisplayer : SingletonBehaviour, ISyste /// public static event Action OnDisplayScreenChangedEvent; /// State of the system button. - internal static SystemInputState SystemButtonState = new SystemInputState(); + [NonSerialized] public static SystemInputState SystemButtonState = new SystemInputState(); /// The camera. [SerializeField] Camera m_UICamera; /// The virtual controller. @@ -159,12 +159,12 @@ private void CreateDisplay() var phoneScreenReplayceTool = FindObjectOfType(); if (phoneScreenReplayceTool == null) { - NRDebugger.Info("[NRMultiDisplayManager] Use default phone sceen provider."); + NRDebugger.Info("[NRVirtualDisplayer] Use default phone sceen provider."); this.BindVirtualDisplayProvider(new NRDefaultPhoneScreenProvider()); } else { - NRDebugger.Info("[NRMultiDisplayManager] Use replayced phone sceen provider."); + NRDebugger.Info("[NRVirtualDisplayer] Use replayced phone sceen provider."); this.BindVirtualDisplayProvider(phoneScreenReplayceTool.CreatePhoneScreenProvider()); } } diff --git a/Nreal/Assets/NRSDK/Scripts/NRVisualProfiler.cs b/Nreal/Assets/NRSDK/Scripts/NRVisualProfiler.cs index 0c270c95..dbf32836 100644 --- a/Nreal/Assets/NRSDK/Scripts/NRVisualProfiler.cs +++ b/Nreal/Assets/NRSDK/Scripts/NRVisualProfiler.cs @@ -332,7 +332,6 @@ private void Reset() if (defaultInstancedMaterial != null) { // Create a quad mesh with artificially large bounds to disable culling for instanced rendering. - // TODO: Use shared mesh with normal bounds once Unity allows for more control over instance culling. quadMesh = quadMeshFilter.mesh; quadMesh.bounds = new Bounds(Vector3.zero, Vector3.one * float.MaxValue); } diff --git a/Nreal/Assets/NRSDK/Scripts/Subsystems/Device/NRDeviceSubsystem.cs b/Nreal/Assets/NRSDK/Scripts/Subsystems/Device/NRDeviceSubsystem.cs index c7c1bd3c..f968fbed 100644 --- a/Nreal/Assets/NRSDK/Scripts/Subsystems/Device/NRDeviceSubsystem.cs +++ b/Nreal/Assets/NRSDK/Scripts/Subsystems/Device/NRDeviceSubsystem.cs @@ -41,6 +41,7 @@ public class NRDeviceSubsystem : IntegratedSubsystem m_NativeGlassesController.GlassesControllerHandle; public UInt64 NativeHMDHandler => m_NativeHMD.HmdHandle; + public NativeHMD NativeHMD => m_NativeHMD; public bool IsAvailable => !m_IsGlassesPlugOut && running && m_InitException == null; public NRDeviceSubsystem(NRDeviceSubsystemDescriptor descriptor) : base(descriptor) @@ -152,6 +153,7 @@ public override void Stop() #if !UNITY_EDITOR m_NativeGlassesController?.Stop(); m_NativeGlassesController?.Destroy(); + m_NativeHMD.Destroy(); #endif } #endregion @@ -165,7 +167,7 @@ public GlassesTemperatureLevel TemperatureLevel { if (!IsAvailable) { - throw new NRGlassesConnectError("Device is not available."); + throw new NRGlassesNotAvailbleError("Device is not available."); } #if !UNITY_EDITOR return m_NativeGlassesController.GetTempratureLevel(); @@ -177,11 +179,25 @@ public GlassesTemperatureLevel TemperatureLevel #endregion #region HMD + public NRDeviceType GetDeviceType() + { + if (!IsAvailable) + { + throw new NRGlassesNotAvailbleError("Device is not available."); + } + +#if !UNITY_EDITOR + return m_NativeHMD.GetDeviceType(); +#else + return NRDeviceType.NrealLight; +#endif + } + public bool IsFeatureSupported(NRSupportedFeature feature) { if (!IsAvailable) { - throw new NRGlassesConnectError("Device is not available."); + throw new NRGlassesNotAvailbleError("Device is not available."); } #if !UNITY_EDITOR @@ -191,11 +207,14 @@ public bool IsFeatureSupported(NRSupportedFeature feature) #endif } + /// Gets the resolution of device. + /// device index. + /// The device resolution. public NativeResolution GetDeviceResolution(NativeDevice device) { if (!IsAvailable) { - throw new NRGlassesConnectError("Device is not available."); + throw new NRGlassesNotAvailbleError("Device is not available."); } #if !UNITY_EDITOR return m_NativeHMD.GetEyeResolution((int)device); @@ -204,11 +223,30 @@ public NativeResolution GetDeviceResolution(NativeDevice device) #endif } + /// Gets device fov. + /// The display index. + /// [in,out] The out device fov. + /// A NativeResult. + public void GetEyeFov(NativeDevice device, ref NativeFov4f fov) + { + if (!IsAvailable || (device != NativeDevice.LEFT_DISPLAY && device != NativeDevice.RIGHT_DISPLAY)) + { + throw new NRGlassesNotAvailbleError("Device is not available."); + } +#if !UNITY_EDITOR + fov = m_NativeHMD.GetEyeFovInCoord(device); +#else + fov = new NativeFov4f(0, 0, 1, 1); +#endif + } + + /// Get the intrinsic matrix of device. + /// The device intrinsic matrix. public NRDistortionParams GetDeviceDistortion(NativeDevice device) { if (!IsAvailable) { - throw new NRGlassesConnectError("Device is not available."); + throw new NRGlassesNotAvailbleError("Device is not available."); } NRDistortionParams result = new NRDistortionParams(); #if !UNITY_EDITOR @@ -217,11 +255,13 @@ public NRDistortionParams GetDeviceDistortion(NativeDevice device) return result; } + /// Get the intrinsic matrix of device. + /// The device intrinsic matrix. public NativeMat3f GetDeviceIntrinsicMatrix(NativeDevice device) { if (!IsAvailable) { - throw new NRGlassesConnectError("Device is not available."); + throw new NRGlassesNotAvailbleError("Device is not available."); } NativeMat3f result = new NativeMat3f(); #if !UNITY_EDITOR @@ -230,11 +270,16 @@ public NativeMat3f GetDeviceIntrinsicMatrix(NativeDevice device) return result; } + /// Get the project matrix of camera in unity. + /// [out] True to result. + /// The znear. + /// The zfar. + /// project matrix of camera. public EyeProjectMatrixData GetEyeProjectMatrix(out bool result, float znear, float zfar) { if (!IsAvailable) { - throw new NRGlassesConnectError("Device is not available."); + throw new NRGlassesNotAvailbleError("Device is not available."); } result = false; EyeProjectMatrixData m_EyeProjectMatrix = new EyeProjectMatrixData(); @@ -244,18 +289,19 @@ public EyeProjectMatrixData GetEyeProjectMatrix(out bool result, float znear, fl return m_EyeProjectMatrix; } + /// Get the offset position between device and head. + /// The device pose from head. public Pose GetDevicePoseFromHead(NativeDevice device) { if (!IsAvailable) { - throw new NRGlassesConnectError("Device is not available."); + throw new NRGlassesNotAvailbleError("Device is not available."); } #if !UNITY_EDITOR return m_NativeHMD.GetDevicePoseFromHead(device); #else return Pose.identity; #endif - } #endregion } diff --git a/Nreal/Assets/NRSDK/Scripts/Subsystems/HeadTracking/NRTrackingSubsystem.cs b/Nreal/Assets/NRSDK/Scripts/Subsystems/HeadTracking/NRTrackingSubsystem.cs index 526fb733..8e02c5b1 100644 --- a/Nreal/Assets/NRSDK/Scripts/Subsystems/HeadTracking/NRTrackingSubsystem.cs +++ b/Nreal/Assets/NRSDK/Scripts/Subsystems/HeadTracking/NRTrackingSubsystem.cs @@ -77,6 +77,11 @@ public bool GetFramePresentHeadPose(ref UnityEngine.Pose pose, ref ulong timesta return m_Provider.GetFramePresentHeadPose(ref pose, ref timestamp); } + public bool GetFramePresentTimeByCount(int count, ref ulong timestamp) + { + return m_Provider.GetFramePresentTimeByCount(count, ref timestamp); + } + public bool GetHeadPose(ref UnityEngine.Pose pose, ulong timestamp) { return m_Provider.GetHeadPose(ref pose, timestamp); diff --git a/Nreal/Assets/NRSDK/Scripts/Subsystems/HeadTracking/Provider/ITrackingDataProvider.cs b/Nreal/Assets/NRSDK/Scripts/Subsystems/HeadTracking/Provider/ITrackingDataProvider.cs index eaafe258..e0987481 100644 --- a/Nreal/Assets/NRSDK/Scripts/Subsystems/HeadTracking/Provider/ITrackingDataProvider.cs +++ b/Nreal/Assets/NRSDK/Scripts/Subsystems/HeadTracking/Provider/ITrackingDataProvider.cs @@ -20,6 +20,8 @@ public interface ITrackingDataProvider : ILifecycle bool GetFramePresentHeadPose(ref Pose pose, ref UInt64 timestamp); + bool GetFramePresentTimeByCount(int count, ref UInt64 timestamp); + LostTrackingReason GetTrackingLostReason(); bool InitTrackingMode(TrackingMode mode); diff --git a/Nreal/Assets/NRSDK/Scripts/Subsystems/HeadTracking/Provider/NREmulatorTrackingDataProvider.cs b/Nreal/Assets/NRSDK/Scripts/Subsystems/HeadTracking/Provider/NREmulatorTrackingDataProvider.cs index 289a8c69..6c569ca0 100644 --- a/Nreal/Assets/NRSDK/Scripts/Subsystems/HeadTracking/Provider/NREmulatorTrackingDataProvider.cs +++ b/Nreal/Assets/NRSDK/Scripts/Subsystems/HeadTracking/Provider/NREmulatorTrackingDataProvider.cs @@ -83,7 +83,13 @@ public bool SwitchTrackingMode(TrackingMode mode) } public void Recenter() { } - + + public bool GetFramePresentTimeByCount(int count, ref ulong timestamp) + { + timestamp = NRTools.GetTimeStamp(); + return true; + } + public ulong GetHMDTimeNanos() { return 0; diff --git a/Nreal/Assets/NRSDK/Scripts/Subsystems/HeadTracking/Provider/NRTrackingDataProvider.cs b/Nreal/Assets/NRSDK/Scripts/Subsystems/HeadTracking/Provider/NRTrackingDataProvider.cs index 79ca5c80..f0e70035 100644 --- a/Nreal/Assets/NRSDK/Scripts/Subsystems/HeadTracking/Provider/NRTrackingDataProvider.cs +++ b/Nreal/Assets/NRSDK/Scripts/Subsystems/HeadTracking/Provider/NRTrackingDataProvider.cs @@ -80,6 +80,11 @@ public bool InitTrackingMode(TrackingMode mode) return m_NativeTracking.InitTrackingMode(mode); } + public bool GetFramePresentTimeByCount(int count, ref ulong timestamp) + { + return m_NativeHeadTracking.GetFramePresentTimeByCount(count, ref timestamp); + } + public ulong GetHMDTimeNanos() { return m_NativeHeadTracking.GetHMDTimeNanos(); diff --git a/Nreal/Assets/NRSDK/Scripts/Utility/ConversionUtility.cs b/Nreal/Assets/NRSDK/Scripts/Utility/ConversionUtility.cs index 7783e673..ef466306 100644 --- a/Nreal/Assets/NRSDK/Scripts/Utility/ConversionUtility.cs +++ b/Nreal/Assets/NRSDK/Scripts/Utility/ConversionUtility.cs @@ -136,10 +136,10 @@ public static NativeMat4f GetProjectionMatrixFromFov(NativeFov4f fov, float z_ne { NativeMat4f pm = NativeMat4f.identity; - float l = -fov.left_tan; + float l = fov.left_tan; float r = fov.right_tan; float t = fov.top_tan; - float b = -fov.bottom_tan; + float b = fov.bottom_tan; pm.column0.X = 2f / (r - l); pm.column1.Y = 2f / (t - b); @@ -161,5 +161,22 @@ public static Pose ApiWorldToUnityWorld(Pose apiworld) Matrix4x4 native_pose_matrix = world_offse_matrix * Matrix4x4.TRS(apiworld.position, apiworld.rotation, Vector3.one); return new Pose(ConversionUtility.GetPositionFromTMatrix(native_pose_matrix), ConversionUtility.GetRotationFromTMatrix(native_pose_matrix)); } + + public static Matrix4x4 UnityPoseToCVMatrix(Pose unityPose) + { + Matrix4x4 unityMat = GetTMatrix(unityPose.position, unityPose.rotation); + Matrix4x4 cv_T_unity = Matrix4x4.Scale(new Vector3(1, -1, 1)); + Matrix4x4 cvWorld = cv_T_unity * unityMat * cv_T_unity.inverse; + + return cvWorld; + } + + public static Matrix4x4 UnityMatrixToCVMatrix(Matrix4x4 unityMat) + { + Matrix4x4 cv_T_unity = Matrix4x4.Scale(new Vector3(1, -1, 1)); + Matrix4x4 cvWorld = cv_T_unity * unityMat * cv_T_unity.inverse; + + return cvWorld; + } } } diff --git a/Nreal/Assets/NRSDK/Scripts/Utility/ConvertUtility.cs b/Nreal/Assets/NRSDK/Scripts/Utility/ConvertUtility.cs index aac47b0c..f4b2655b 100644 --- a/Nreal/Assets/NRSDK/Scripts/Utility/ConvertUtility.cs +++ b/Nreal/Assets/NRSDK/Scripts/Utility/ConvertUtility.cs @@ -10,8 +10,10 @@ namespace NRKernal { using System; + using System.Text; + using UnityEngine.Assertions; - public class ConvertUtility + public static class ConvertUtility { public static float IntBitsToFloat(int v) { @@ -24,5 +26,16 @@ public static int FloatToRawIntBits(float v) byte[] buf = BitConverter.GetBytes(v); return BitConverter.ToInt32(buf, 0); } + + public static string ToString(this float[] data) + { + Assert.IsTrue(data != null); + StringBuilder st = new StringBuilder(); + for (int i = 0; i < data.Length; i++) + { + st.Append(data[i] + " "); + } + return st.ToString(); + } } } diff --git a/Nreal/Assets/NRSDK/Scripts/Utility/NRTools.cs b/Nreal/Assets/NRSDK/Scripts/Utility/NRTools.cs index 5ecb4565..28ede4b5 100644 --- a/Nreal/Assets/NRSDK/Scripts/Utility/NRTools.cs +++ b/Nreal/Assets/NRSDK/Scripts/Utility/NRTools.cs @@ -88,6 +88,13 @@ public static ulong GetTimeStamp() TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0); return Convert.ToUInt64(ts.TotalMilliseconds); } + + /// Gets time stamp. + /// The time stamp. + public static ulong GetTimeStampNanos() + { + return GetTimeStamp() * 1000000; + } #endregion } } diff --git a/Nreal/Assets/NRSDK/Textures/Logo/logo.jpg.meta b/Nreal/Assets/NRSDK/Textures/Logo/logo.jpg.meta index 7c1771f0..d5be81f3 100644 --- a/Nreal/Assets/NRSDK/Textures/Logo/logo.jpg.meta +++ b/Nreal/Assets/NRSDK/Textures/Logo/logo.jpg.meta @@ -1,9 +1,9 @@ fileFormatVersion: 2 guid: d0e95bf7c3500ed42b2dae3419312f64 TextureImporter: - internalIDToNameTable: [] + fileIDToRecycleName: {} externalObjects: {} - serializedVersion: 11 + serializedVersion: 9 mipmaps: mipMapMode: 0 enableMipMap: 0 @@ -23,7 +23,6 @@ TextureImporter: isReadable: 0 streamingMipmaps: 0 streamingMipmapsPriority: 0 - vTOnly: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -32,12 +31,12 @@ TextureImporter: maxTextureSize: 2048 textureSettings: serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 + filterMode: -1 + aniso: -1 + mipBias: -100 wrapU: 1 wrapV: 1 - wrapW: 0 + wrapW: -1 nPOTScale: 0 lightmap: 0 compressionQuality: 50 @@ -55,15 +54,11 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 1 platformSettings: - - serializedVersion: 3 + - serializedVersion: 2 buildTarget: DefaultTexturePlatform maxTextureSize: 2048 resizeAlgorithm: 0 @@ -74,8 +69,7 @@ TextureImporter: allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 1 - - serializedVersion: 3 + - serializedVersion: 2 buildTarget: Standalone maxTextureSize: 2048 resizeAlgorithm: 0 @@ -86,8 +80,7 @@ TextureImporter: allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 1 - - serializedVersion: 3 + - serializedVersion: 2 buildTarget: Android maxTextureSize: 2048 resizeAlgorithm: 0 @@ -98,8 +91,7 @@ TextureImporter: allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 1 - - serializedVersion: 3 + - serializedVersion: 2 buildTarget: Windows Store Apps maxTextureSize: 2048 resizeAlgorithm: 0 @@ -110,20 +102,17 @@ TextureImporter: allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 1 spriteSheet: serializedVersion: 2 sprites: [] outline: [] physicsShape: [] bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 + spriteID: c0ef915859f404a5dba2b5d28936381b vertices: [] indices: edges: [] weights: [] - secondaryTextures: [] spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 diff --git a/Nreal/Assets/Plugins/Android/AndroidManifest.xml b/Nreal/Assets/Plugins/Android/AndroidManifest.xml index cc4263ec..d59564ef 100644 --- a/Nreal/Assets/Plugins/Android/AndroidManifest.xml +++ b/Nreal/Assets/Plugins/Android/AndroidManifest.xml @@ -10,6 +10,7 @@ + diff --git a/Nreal/Packages/manifest.json b/Nreal/Packages/manifest.json index e63b204b..1a508696 100644 --- a/Nreal/Packages/manifest.json +++ b/Nreal/Packages/manifest.json @@ -1,9 +1,9 @@ { "dependencies": { "com.unity.2d.sprite": "1.0.0", - "com.unity.collab-proxy": "1.9.0", + "com.unity.collab-proxy": "1.15.7", "com.unity.ide.rider": "2.0.7", - "com.unity.ide.visualstudio": "2.0.11", + "com.unity.ide.visualstudio": "2.0.12", "com.unity.ide.vscode": "1.2.4", "com.unity.postprocessing": "3.0.3", "com.unity.test-framework": "1.1.29", diff --git a/Nreal/Packages/packages-lock.json b/Nreal/Packages/packages-lock.json index cd6b5e6b..dda6c529 100644 --- a/Nreal/Packages/packages-lock.json +++ b/Nreal/Packages/packages-lock.json @@ -7,10 +7,13 @@ "dependencies": {} }, "com.unity.collab-proxy": { - "version": "1.9.0", + "version": "1.15.7", "depth": 0, "source": "registry", - "dependencies": {}, + "dependencies": { + "com.unity.nuget.newtonsoft-json": "2.0.0", + "com.unity.services.core": "1.0.1" + }, "url": "https://packages.unity.com" }, "com.unity.ext.nunit": { @@ -30,7 +33,7 @@ "url": "https://packages.unity.com" }, "com.unity.ide.visualstudio": { - "version": "2.0.11", + "version": "2.0.12", "depth": 0, "source": "registry", "dependencies": { @@ -45,6 +48,13 @@ "dependencies": {}, "url": "https://packages.unity.com" }, + "com.unity.nuget.newtonsoft-json": { + "version": "2.0.0", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, "com.unity.postprocessing": { "version": "3.0.3", "depth": 0, @@ -54,6 +64,15 @@ }, "url": "https://packages.unity.com" }, + "com.unity.services.core": { + "version": "1.0.1", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0" + }, + "url": "https://packages.unity.com" + }, "com.unity.sysroot": { "version": "0.1.19-preview", "depth": 1, diff --git a/Nreal/ProjectSettings/ProjectSettings.asset b/Nreal/ProjectSettings/ProjectSettings.asset index 92dc29a6..bb196a59 100644 --- a/Nreal/ProjectSettings/ProjectSettings.asset +++ b/Nreal/ProjectSettings/ProjectSettings.asset @@ -135,7 +135,7 @@ PlayerSettings: 16:10: 1 16:9: 1 Others: 1 - bundleVersion: 1.1.1 + bundleVersion: 1.1.2 preloadedAssets: [] metroInputSource: 0 wsaTransparentSwapchain: 0 @@ -160,9 +160,9 @@ PlayerSettings: iPhone: 0 tvOS: 0 overrideDefaultApplicationIdentifier: 1 - AndroidBundleVersionCode: 111 + AndroidBundleVersionCode: 112 AndroidMinSdkVersion: 26 - AndroidTargetSdkVersion: 29 + AndroidTargetSdkVersion: 30 AndroidPreferredInstallLocation: 1 aotOptions: stripEngineCode: 1 diff --git a/Nreal/ProjectSettings/ProjectVersion.txt b/Nreal/ProjectSettings/ProjectVersion.txt index 39e91255..ffab026f 100644 --- a/Nreal/ProjectSettings/ProjectVersion.txt +++ b/Nreal/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2020.3.19f1 -m_EditorVersionWithRevision: 2020.3.19f1 (68f137dc9bbe) +m_EditorVersion: 2020.3.27f1 +m_EditorVersionWithRevision: 2020.3.27f1 (e759542391ea)