diff --git a/CHANGELOG.md b/CHANGELOG.md index b66ada872..1a43becf3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,30 @@ # Changelog - VR Builder -**v3.4.0 (2023/12/01 - Current)** +**v4.0.0 (2024/04/18 - Current)** + +*[Added]* +- Added upgrade tool for updating processes to the new referencing system (see below). If you open an old process in VR Builder 4.0.0, all object references will be null because the system has changed. You can attempt to update the process by opening its scene, then selecting Tools > VR Builder > Developer > Update Process in Scene. Note it's important that the correct scene is loaded, as the updater will have to search for the correct game objects in order to update the references. +If you have custom behaviors or conditions in your project, you'll need to update them to the new referencing system. Afterwards they will be supported by the automatic updater. +- Added support for TTS when using an async provider, courtesy of LEFX. + +*[Changed]* +- Rebuilt the system for referencing scene objects in the process from the ground up. The new system is more robust and lets you use prefabs normally, without worrying about unique name conflicts. References in behaviors and conditions now can hold a mix of unique objects and object groups (formerly tags). They can be single or multiple references, meaning they will return one object or all viable objects. Make sure to check the documentation for more information. +- "By tag" behaviors and conditions have been removed. Now there is only one version of a given behavior/condition, but where it makes sense it will be possible to reference multiple objects, thus replicating the functionality. +- VR Builder is now a hybrid package. This means that while it's still an Asset Store .unitypackage, it will be imported in the Packages section of the project instead of your Assets folder. It's recommended to delete the MindPort/VR Builder/Core folder under Assets before updating to this version. +- Scene Object Tags have been renamed to Groups. Functionality is the same, but if updating from an old project you will notice that the Scene Object Groups settings page is empty. You can import your old tags by selecting Tools > VR Builder > Developer > Update Object Groups. +- Objects unlocked by conditions are now unlocked when the step is active instead of activating. This means, for example, that the teleportation anchor for a teleport condition will appear after all blocking behaviors have finished instead of the beginning of the step. It also means that it won't be possible to teleport there before the condition starts checking. +- The process won't stop executing because of entity lifecycle exceptions, instead, an informative error will be displayed in the console. + +*[Fixed]* +- Fixed Set Next Chapter node exception when being fast forwarded. +- Fixed some errors when creating a new scene through the wizard. +- Fixed manually unlocked objects not locking again if they had been manually unlocked in multiple consecutive steps. +- Fixed unresponsive buttons in the Scene Object Groups settings page. + +*[Removed]* +- Removed previously deprecated code. This includes the C# events on all properties, the old process editor, and more. + +**v3.4.0 (2023/12/01)** *[Added]* - Experimental hand tracking rig based on the default XRI Hands rig. The prefab is named `XR_Setup_Action_Based_HandTracking` and can be used in place of the default rig. The rig supports both controllers and hand tracking. Note that there is no teleportation solution currently available for hand tracking, and some controls and behaviors are slightly different from the standard rig. diff --git a/Demo/Editor/DemoSceneLoader.cs b/Demo/Editor/DemoSceneLoader.cs index ca366322c..9cdf6aab0 100644 --- a/Demo/Editor/DemoSceneLoader.cs +++ b/Demo/Editor/DemoSceneLoader.cs @@ -11,8 +11,14 @@ namespace VRBuilder.Editor.DemoScene /// public static class DemoSceneLoader { - private const string demoScenePath = "Assets/MindPort/VR Builder/Core/Demo/Runtime/Scenes/VR Builder Demo - Core Features.unity"; - private const string demoProcessFilePath = "Assets/StreamingAssets/Processes/Demo - Core Features/Demo - Core Features.json"; + private const string demoSceneAssetsPath = "Assets/MindPort/VR Builder/Core/Demo/Runtime/Scenes/VR Builder Demo - Core Features.unity"; + private const string demoScenePackagesPath = "Packages/co.mindport.vrbuilder.core/Demo/Runtime/Scenes/VR Builder Demo - Core Features.unity"; + + private const string demoProcessAssetsPath = "Assets/MindPort/VR Builder/Core/Demo/StreamingAssets/Processes/Demo - Core Features/Demo - Core Features.json"; + private const string demoProcessPackagesPath = "Packages/co.mindport.vrbuilder.core/Demo/StreamingAssets/Processes/Demo - Core Features/Demo - Core Features.json"; + + private const string demoProcessTargetPath = "Assets/StreamingAssets/Processes/Demo - Core Features/Demo - Core Features.json"; + private const string demoProcessTargetDirectory = "Assets/StreamingAssets/Processes/Demo - Core Features"; [MenuItem("Tools/VR Builder/Demo Scenes/Core", false, 64)] public static void LoadDemoScene() @@ -23,11 +29,15 @@ public static void LoadDemoScene() return; } #endif + bool isUpmPackage = File.Exists(demoScenePackagesPath); + + string demoScenePath = isUpmPackage ? demoScenePackagesPath : demoSceneAssetsPath; + string demoProcessPath = isUpmPackage ? demoProcessPackagesPath : demoProcessAssetsPath; - if (File.Exists(demoProcessFilePath) == false) + if (File.Exists(demoProcessTargetPath) == false) { - Directory.CreateDirectory("Assets/StreamingAssets/Processes/Demo - Core Features"); - FileUtil.CopyFileOrDirectory("Assets/MindPort/VR Builder/Core/Demo/StreamingAssets/Processes/Demo - Core Features/Demo - Core Features.json", demoProcessFilePath); + Directory.CreateDirectory(demoProcessTargetDirectory); + FileUtil.CopyFileOrDirectory(demoProcessPath, demoProcessTargetPath); } EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo(); diff --git a/Demo/Editor/VRBuilder.Editor.DemoScene.asmdef b/Demo/Editor/VRBuilder.Editor.DemoScene.asmdef index 00e1976c0..41819fa8f 100644 --- a/Demo/Editor/VRBuilder.Editor.DemoScene.asmdef +++ b/Demo/Editor/VRBuilder.Editor.DemoScene.asmdef @@ -2,7 +2,7 @@ "name": "VRBuilder.Editor.DemoScene", "rootNamespace": "", "references": [ - "GUID:c8561f9de838ac04d8feeda695bc572d" + "VRBuilder.Core" ], "includePlatforms": [ "Editor" diff --git a/Demo/Runtime/Scenes/VR Builder Demo - Core Features.unity b/Demo/Runtime/Scenes/VR Builder Demo - Core Features.unity index 206bd5144..09c58c460 100644 --- a/Demo/Runtime/Scenes/VR Builder Demo - Core Features.unity +++ b/Demo/Runtime/Scenes/VR Builder Demo - Core Features.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 705507994} - m_IndirectSpecularColor: {r: 0.023878034, g: 0.0028692086, b: 0.054385133, a: 1} + m_IndirectSpecularColor: {r: 0.023824753, g: 0.0029160744, b: 0.05423471, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -123,6 +123,38 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &25957661 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 25957662} + m_Layer: 0 + m_Name: Thumb_Palm_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &25957662 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 25957661} + m_LocalRotation: {x: -0.7044048, y: 0.08700629, z: 0.3122117, w: 0.6314806} + m_LocalPosition: {x: -0.042795867, y: -0.014722028, z: 0.029782485} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1074416408} + m_Father: {fileID: 105739408} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &33704421 GameObject: m_ObjectHideFlags: 0 @@ -157,7 +189,7 @@ Transform: - {fileID: 861048855} - {fileID: 518602151} m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} --- !u!1001 &53683353 PrefabInstance: @@ -271,8 +303,121 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: + serializedGuid: + serializedGuid: df8a710cc656294c8257c8ace06c735d uniqueName: Cube tags: [] +--- !u!1 &54233950 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 54233951} + - component: {fileID: 54233953} + - component: {fileID: 54233952} + m_Layer: 0 + m_Name: RightHand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &54233951 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 54233950} + m_LocalRotation: {x: -0.27542365, y: 0.27542365, z: 0.65126175, w: 0.65126175} + m_LocalPosition: {x: 0.0358, y: 0.0577, z: -0.1296} + m_LocalScale: {x: 0.95, y: 0.95, z: 0.95} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1909973946} + - {fileID: 918098385} + - {fileID: 2040506300} + m_Father: {fileID: 820468471} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -45.848, y: 0, z: 90} +--- !u!114 &54233952 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 54233950} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e241df096dff11c478f43d1b202d33af, type: 3} + m_Name: + m_EditorClassIdentifier: + selectFloat: Select + activateFloat: Activate + UIStateBool: UIEnabled + teleportStateBool: TeleportEnabled + baseController: {fileID: 0} + teleportController: {fileID: 0} + uiController: {fileID: 0} + controllerManager: {fileID: 0} +--- !u!95 &54233953 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 54233950} + m_Enabled: 1 + m_Avatar: {fileID: 9000000, guid: 3cc1bfa741063664e8b13a63afcd062f, type: 3} + m_Controller: {fileID: 9100000, guid: 6f17d5d554bc9b742b9bf585b813330c, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!1 &65634328 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 65634329} + m_Layer: 0 + m_Name: CameraOffset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &65634329 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 65634328} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2008584333} + - {fileID: 1773926310} + - {fileID: 697578261} + m_Father: {fileID: 361400739} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &102893242 GameObject: m_ObjectHideFlags: 0 @@ -310,6 +455,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: + serializedGuid: + serializedGuid: 780883f2693fe44e98bca9b93f030cb7 uniqueName: Sliced Cube (2) tags: [] --- !u!114 &102893244 @@ -620,7 +767,7 @@ Transform: m_Father: {fileID: 1756511964} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0} ---- !u!1 &109444417 +--- !u!1 &105739407 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -628,200 +775,215 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 109444418} - - component: {fileID: 109444422} - - component: {fileID: 109444421} - - component: {fileID: 109444420} - - component: {fileID: 109444419} + - component: {fileID: 105739408} m_Layer: 0 - m_Name: Right UI Controller + m_Name: BigHandLeft m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &109444418 +--- !u!4 &105739408 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 109444417} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 105739407} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1458059543} - m_Father: {fileID: 1839515083} - m_RootOrder: 2 + - {fileID: 1906445694} + - {fileID: 1784977341} + - {fileID: 1675801262} + - {fileID: 1142522481} + - {fileID: 25957662} + m_Father: {fileID: 1015737782} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &134998303 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 134998304} + - component: {fileID: 134998306} + - component: {fileID: 134998305} + m_Layer: 8 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &134998304 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 134998303} + m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: -0.1} + m_LocalScale: {x: 1, y: 0.1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1222594156} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &134998305 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 134998303} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a16db0f18ace882458e325d3243cb6da, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &134998306 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 134998303} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &185363457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 185363458} + - component: {fileID: 185363463} + - component: {fileID: 185363462} + - component: {fileID: 185363460} + - component: {fileID: 185363459} + - component: {fileID: 185363461} + m_Layer: 0 + m_Name: Slicing highlight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &185363458 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 185363457} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.01, y: 0.4, z: 0.4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 248065651} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &109444419 +--- !u!114 &185363459 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 109444417} + m_GameObject: {fileID: 185363457} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} + m_Script: {fileID: 11500000, guid: 94f0bf7ce367d3942a1f56ec8dd56e41, type: 3} m_Name: m_EditorClassIdentifier: - m_LineWidth: 0.02 - m_OverrideInteractorLineLength: 1 - m_LineLength: 10 - m_AutoAdjustLineLength: 0 - m_MinLineLength: 0.5 - m_UseDistanceToHitAsMaxLineLength: 1 - m_LineRetractionDelay: 0.5 - m_LineLengthChangeSpeed: 12 - m_WidthCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - m_SetLineColorGradient: 1 - m_ValidColorGradient: - serializedVersion: 2 - key0: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 0} - key1: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 1} - key2: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 1} - key3: {r: 0, g: 0, b: 0, a: 1} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 32768 - ctime2: 65535 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 32768 - atime2: 65535 - atime3: 65535 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_NumColorKeys: 3 - m_NumAlphaKeys: 3 - m_InvalidColorGradient: - serializedVersion: 2 - key0: {r: 1, g: 0.39215687, b: 0.18431373, a: 0} - key1: {r: 1, g: 0.39215687, b: 0.18431373, a: 1} - key2: {r: 1, g: 0.39215687, b: 0.18431373, a: 1} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 32768 - ctime2: 65535 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 32768 - atime2: 65535 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_NumColorKeys: 3 - m_NumAlphaKeys: 3 - m_BlockedColorGradient: - serializedVersion: 2 - key0: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} - key1: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - m_TreatSelectionAsValidState: 0 - m_SmoothMovement: 0 - m_FollowTightness: 10 - m_SnapThresholdDistance: 10 - m_Reticle: {fileID: 0} - m_BlockedReticle: {fileID: 0} - m_StopLineAtFirstRaycastHit: 1 - m_StopLineAtSelection: 0 - m_SnapEndpointIfAvailable: 1 - m_LineBendRatio: 0.5 - m_OverrideInteractorLineOrigin: 1 - m_LineOriginTransform: {fileID: 0} - m_LineOriginOffset: 0 ---- !u!120 &109444420 -LineRenderer: +--- !u!114 &185363460 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 109444417} + m_GameObject: {fileID: 185363457} m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} + m_Name: + m_EditorClassIdentifier: + serializedGuid: + serializedGuid: 8531ddd739de15498651d945a022a74e + uniqueName: Slicing highlight + tags: [] +--- !u!65 &185363461 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 185363457} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2, y: 1, z: 1.5} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &185363462 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 185363457} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 m_DynamicOccludee: 1 m_StaticShadowCaster: 0 - m_MotionVectors: 0 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RayTracingMode: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: 525bac3f393fa1349a1508822fb6abb0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -841,98 +1003,111 @@ LineRenderer: m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 m_SortingLayer: 0 - m_SortingOrder: 5 - m_Positions: [] - m_Parameters: - serializedVersion: 3 - widthMultiplier: 0.02 - widthCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - colorGradient: - serializedVersion: 2 - key0: {r: 0, g: 0, b: 1, a: 1} - key1: {r: 0, g: 0, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - numCornerVertices: 4 - numCapVertices: 4 - alignment: 0 - textureMode: 0 - shadowBias: 0.5 - generateLightingData: 0 - m_UseWorldSpace: 1 - m_Loop: 0 ---- !u!114 &109444421 -MonoBehaviour: + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &185363463 +MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 109444417} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 203357f2f04686b4c860a9361fd12c36, type: 3} - m_Name: - m_EditorClassIdentifier: - m_InteractionManager: {fileID: 1457759947} - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 32 - m_InteractionLayers: - m_Bits: 32 - m_AttachTransform: {fileID: 1458059543} - m_KeepSelectedTargetValid: 1 - m_DisableVisualsWhenBlockedInGroup: 1 - m_StartingSelectedInteractable: {fileID: 0} - m_StartingTargetFilter: {fileID: 0} - m_HoverEntered: - m_PersistentCalls: - m_Calls: [] + m_GameObject: {fileID: 185363457} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &189572712 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 189572713} + m_Layer: 0 + m_Name: Index_0_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &189572713 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 189572712} + m_LocalRotation: {x: 0.039005104, y: -0.077951096, z: -0.09432525, w: 0.9917182} + m_LocalPosition: {x: -0.059387933, y: -0.00000024288892, z: 0.0000000011920929} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1352490008} + m_Father: {fileID: 1906445694} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &221845636 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 221845637} + - component: {fileID: 221845638} + - component: {fileID: 221845642} + - component: {fileID: 221845641} + - component: {fileID: 221845640} + - component: {fileID: 221845639} + m_Layer: 0 + m_Name: Snap Zone Stairs (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &221845637 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 221845636} + m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0.4, z: 1.8} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1745294527} + m_Father: {fileID: 33704422} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!114 &221845638 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 221845636} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc6efdd45e6a00744aaf4c68264d6d7c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 1 + m_AttachTransform: {fileID: 1745294527} + m_KeepSelectedTargetValid: 1 + m_DisableVisualsWhenBlockedInGroup: 1 + m_StartingSelectedInteractable: {fileID: 0} + m_StartingTargetFilter: {fileID: 0} + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] m_HoverExited: m_PersistentCalls: m_Calls: [] @@ -956,314 +1131,88 @@ MonoBehaviour: m_OnSelectExited: m_PersistentCalls: m_Calls: [] - m_SelectActionTrigger: 1 - m_HideControllerOnSelect: 0 - m_AllowHoveredActivate: 0 - m_TargetPriorityMode: 0 - m_PlayAudioClipOnSelectEntered: 0 - m_AudioClipForOnSelectEntered: {fileID: 0} - m_PlayAudioClipOnSelectExited: 0 - m_AudioClipForOnSelectExited: {fileID: 0} - m_PlayAudioClipOnSelectCanceled: 0 - m_AudioClipForOnSelectCanceled: {fileID: 0} - m_PlayAudioClipOnHoverEntered: 0 - m_AudioClipForOnHoverEntered: {fileID: 0} - m_PlayAudioClipOnHoverExited: 0 - m_AudioClipForOnHoverExited: {fileID: 0} - m_PlayAudioClipOnHoverCanceled: 0 - m_AudioClipForOnHoverCanceled: {fileID: 0} - m_AllowHoverAudioWhileSelecting: 1 - m_PlayHapticsOnSelectEntered: 0 - m_HapticSelectEnterIntensity: 0 - m_HapticSelectEnterDuration: 0 - m_PlayHapticsOnSelectExited: 0 - m_HapticSelectExitIntensity: 0 - m_HapticSelectExitDuration: 0 - m_PlayHapticsOnSelectCanceled: 0 - m_HapticSelectCancelIntensity: 0 - m_HapticSelectCancelDuration: 0 - m_PlayHapticsOnHoverEntered: 0 - m_HapticHoverEnterIntensity: 0 - m_HapticHoverEnterDuration: 0 - m_PlayHapticsOnHoverExited: 0 - m_HapticHoverExitIntensity: 0 - m_HapticHoverExitDuration: 0 - m_PlayHapticsOnHoverCanceled: 0 - m_HapticHoverCancelIntensity: 0 - m_HapticHoverCancelDuration: 0 - m_AllowHoverHapticsWhileSelecting: 1 - m_LineType: 0 - m_BlendVisualLinePoints: 1 - m_MaxRaycastDistance: 30 - m_RayOriginTransform: {fileID: 0} - m_ReferenceFrame: {fileID: 0} - m_Velocity: 16 - m_Acceleration: 9.8 - m_AdditionalGroundHeight: 0.1 - m_AdditionalFlightTime: 0.5 - m_EndPointDistance: 30 - m_EndPointHeight: -10 - m_ControlPointDistance: 10 - m_ControlPointHeight: 5 - m_SampleFrequency: 20 - m_HitDetectionType: 0 - m_SphereCastRadius: 0 - m_ConeCastAngle: 6 - m_RaycastMask: - serializedVersion: 2 - m_Bits: 32 - m_RaycastTriggerInteraction: 1 - m_RaycastSnapVolumeInteraction: 1 - m_HitClosestOnly: 0 - m_HoverToSelect: 0 - m_HoverTimeToSelect: 0.5 - m_AutoDeselect: 0 - m_TimeToAutoDeselect: 3 - m_EnableUIInteraction: 1 - m_BlockUIOnInteractableSelection: 1 - m_AllowAnchorControl: 1 - m_UseForceGrab: 1 - m_RotateSpeed: 180 - m_TranslateSpeed: 1 - m_AnchorRotateReferenceFrame: {fileID: 0} - m_AnchorRotationMode: 0 - m_UIHoverEntered: + m_ShowInteractableHoverMeshes: 1 + m_InteractableHoverMeshMaterial: {fileID: 0} + m_InteractableCantHoverMeshMaterial: {fileID: 0} + m_SocketActive: 1 + m_InteractableHoverScale: 1 + m_RecycleDelayTime: 1 + m_HoverSocketSnapping: 0 + m_SocketSnappingRadius: 0.1 + m_SocketScaleMode: 0 + m_FixedScale: {x: 1, y: 1, z: 1} + m_TargetBoundsSize: {x: 1, y: 1, z: 1} + shownHighlightObject: {fileID: 919132149155446097, guid: 3cd7c532cc585b54795fadfe1b32fc53, type: 3} + ShowHighlightInEditor: 1 + highlightMeshMaterial: {fileID: 2100000, guid: 34211d2175b5963469d4deb504fbcbaf, type: 2} + validationMaterial: {fileID: 2100000, guid: c6c888b079480654fbf337e7fe50b405, type: 2} + invalidMaterial: {fileID: 2100000, guid: 69e2b61a70de44f48909a564a7cf9c62, type: 2} + previewMesh: {fileID: 1390574009} +--- !u!65 &221845639 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 221845636} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.4, y: 0.4, z: 0.2} + m_Center: {x: 0, y: 0, z: -0.1} +--- !u!114 &221845640 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 221845636} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 557aaed036734781b129d67ec56c9366, type: 3} + m_Name: + m_EditorClassIdentifier: + acceptedProcessSceneObjects: + - {fileID: 587381668} + - {fileID: 102893243} +--- !u!114 &221845641 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 221845636} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eb7be990fff0a2142a874601356b26df, type: 3} + m_Name: + m_EditorClassIdentifier: + lockOnParentObjectLock: 1 + objectAttached: m_PersistentCalls: m_Calls: [] - m_UIHoverExited: + objectDetached: m_PersistentCalls: m_Calls: [] - m_EnableARRaycasting: 0 - m_OccludeARHitsWith3DObjects: 0 - m_OccludeARHitsWith2DObjects: 0 - m_ScaleMode: 0 ---- !u!114 &109444422 + lockOnUnsnap: 1 +--- !u!114 &221845642 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 109444417} + m_GameObject: {fileID: 221845636} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: - m_UpdateTrackingType: 0 - m_EnableInputTracking: 1 - m_EnableInputActions: 0 - m_ModelPrefab: {fileID: 0} - m_ModelParent: {fileID: 686681832} - m_Model: {fileID: 0} - m_AnimateModel: 0 - m_ModelSelectTransition: - m_ModelDeSelectTransition: - m_PositionAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -3326005586356538449, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RotationAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 5101698808175986029, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_IsTrackedAction: - m_UseReference: 0 - m_Action: - m_Name: Is Tracked - m_Type: 1 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 1 - m_Reference: {fileID: 0} - m_TrackingStateAction: - m_UseReference: 0 - m_Action: - m_Name: Tracking State - m_Type: 0 - m_ExpectedControlType: - m_Id: 90359750-2287-4286-aed5-46e8351830e5 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_SelectAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 187161793506945269, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_SelectActionValue: - m_UseReference: 1 - m_Action: - m_Name: Select Action Value - m_Type: 0 - m_ExpectedControlType: - m_Id: 6010ccb0-bc96-4f14-8cec-bb81835a63eb - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 4766120400929042988, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ActivateAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 83097790271614945, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ActivateActionValue: - m_UseReference: 1 - m_Action: - m_Name: Activate Action Value - m_Type: 0 - m_ExpectedControlType: - m_Id: a770f569-5289-4c4d-ba37-79e50efe54ee - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -3285721481334498719, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 3279264004350380116, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressActionValue: - m_UseReference: 0 - m_Action: - m_Name: UI Press Action Value - m_Type: 0 - m_ExpectedControlType: - m_Id: 532b2b0b-2859-4882-a216-c5bbec06b0ec - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_UIScrollAction: - m_UseReference: 0 - m_Action: - m_Name: UI Scroll - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_HapticDeviceAction: - m_UseReference: 1 - m_Action: - m_Name: Haptic Device - m_Type: 0 - m_ExpectedControlType: - m_Id: 9ad5ff42-2240-49bb-89c4-c981d3c023eb - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -8222252007134549311, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RotateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -5913262927076077117, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_DirectionalAnchorRotationAction: - m_UseReference: 0 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_TranslateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 875253871413052681, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ScaleToggleAction: - m_UseReference: 0 - m_Action: - m_Name: Scale Toggle - m_Type: 1 - m_ExpectedControlType: - m_Id: 26da0e49-599a-47eb-82d6-0a15fae0d588 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ScaleDeltaAction: - m_UseReference: 0 - m_Action: - m_Name: Scale Delta - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: afa73a20-c36b-49cf-9c5a-b1e356d4be1d - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ButtonPressPoint: 0.5 ---- !u!1 &114376058 + serializedGuid: + serializedGuid: fe37ce7994e9bd4e91415ae124ae8aea + uniqueName: Sliced Cube (1)_SnapZone + tags: [] +--- !u!1 &232339299 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1271,72 +1220,238 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 114376059} - m_Layer: 0 - m_Name: Middle_Tip_Left + - component: {fileID: 232339300} + - component: {fileID: 232339303} + - component: {fileID: 232339304} + - component: {fileID: 232339302} + - component: {fileID: 232339301} + m_Layer: 8 + m_Name: Teleportation Spot m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &114376059 +--- !u!4 &232339300 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 114376058} - m_LocalRotation: {x: -0.00000002980233, y: -0.00000005308539, z: -0.000000042258765, w: 1} - m_LocalPosition: {x: -0.022676239, y: 0.00000029563904, z: -0.000000077486035} + m_GameObject: {fileID: 232339299} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 883197912} - m_RootOrder: 0 + m_Children: + - {fileID: 1268751234} + m_Father: {fileID: 1756511964} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &134998303 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 134998304} - - component: {fileID: 134998306} - - component: {fileID: 134998305} - m_Layer: 8 - m_Name: Cylinder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &134998304 -Transform: +--- !u!114 &232339301 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134998303} - m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: -0.1} - m_LocalScale: {x: 1, y: 0.1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1222594156} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &134998305 -MeshRenderer: + m_GameObject: {fileID: 232339299} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 584ad12357614f4fbb5460fdf72e8cc6, type: 3} + m_Name: + m_EditorClassIdentifier: + lockOnParentObjectLock: 1 + teleportEnded: + m_PersistentCalls: + m_Calls: [] + initialized: + m_PersistentCalls: + m_Calls: [] +--- !u!65 &232339302 +BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134998303} + m_GameObject: {fileID: 232339299} + m_Material: {fileID: 0} + m_IsTrigger: 0 m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 + serializedVersion: 2 + m_Size: {x: 1, y: 0.01, z: 1} + m_Center: {x: 0, y: 0.02, z: 0} +--- !u!114 &232339303 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 232339299} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0193c710a3042c6479b28370a44e0b0f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 2 + m_DistanceCalculationMode: 1 + m_SelectMode: 1 + m_FocusMode: 1 + m_CustomReticle: {fileID: 3819676577015031517, guid: c9ea54082e6151843acb776fb52ed6f7, type: 3} + m_AllowGazeInteraction: 0 + m_AllowGazeSelect: 0 + m_OverrideGazeTimeToSelect: 0 + m_GazeTimeToSelect: 0.5 + m_OverrideTimeToAutoDeselectGaze: 0 + m_TimeToAutoDeselectGaze: 3 + m_AllowGazeAssistance: 0 + m_FirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_LastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_FirstSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_LastSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_FirstFocusEntered: + m_PersistentCalls: + m_Calls: [] + m_LastFocusExited: + m_PersistentCalls: + m_Calls: [] + m_FocusEntered: + m_PersistentCalls: + m_Calls: [] + m_FocusExited: + m_PersistentCalls: + m_Calls: [] + m_Activated: + m_PersistentCalls: + m_Calls: [] + m_Deactivated: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_StartingInteractionStrengthFilters: [] + m_OnFirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnLastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectCanceled: + m_PersistentCalls: + m_Calls: [] + m_OnActivate: + m_PersistentCalls: + m_Calls: [] + m_OnDeactivate: + m_PersistentCalls: + m_Calls: [] + m_TeleportationProvider: {fileID: 0} + m_MatchOrientation: 2 + m_MatchDirectionalInput: 0 + m_TeleportTrigger: 3 + m_FilterSelectionByHitNormal: 0 + m_UpNormalToleranceDegrees: 30 + m_Teleporting: + m_PersistentCalls: + m_Calls: [] + m_TeleportAnchorTransform: {fileID: 1268751234} +--- !u!114 &232339304 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 232339299} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} + m_Name: + m_EditorClassIdentifier: + serializedGuid: + serializedGuid: bb9fcf7f489136429f6cc417d678a54c + uniqueName: Teleportation Spot_1 + tags: [] +--- !u!1 &242342981 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 242342982} + - component: {fileID: 242342985} + - component: {fileID: 242342984} + - component: {fileID: 242342983} + m_Layer: 0 + m_Name: SnapPoint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &242342982 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 242342981} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 503181885} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &242342983 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 242342981} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 m_DynamicOccludee: 1 m_StaticShadowCaster: 0 m_MotionVectors: 1 @@ -1347,7 +1462,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: a16db0f18ace882458e325d3243cb6da, type: 2} + - {fileID: 2018913513} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -1369,47 +1484,28 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &134998306 +--- !u!33 &242342984 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134998303} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &136761117 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 136761118} - m_Layer: 0 - m_Name: Ring_Palm_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &136761118 -Transform: + m_GameObject: {fileID: 242342981} + m_Mesh: {fileID: 2119201252} +--- !u!114 &242342985 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 136761117} - m_LocalRotation: {x: 0.99804187, y: -0.04426889, z: 0.04315787, w: 0.009497783} - m_LocalPosition: {x: -0.05238823, y: 0.0045133065, z: -0.011750946} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 874857669} - m_Father: {fileID: 961598098} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &139777992 + m_GameObject: {fileID: 242342981} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88ea78c93b844cc1b7f98cca70e8679c, type: 3} + m_Name: + m_EditorClassIdentifier: + parent: {fileID: 503181886} +--- !u!1 &248065650 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1417,539 +1513,119 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 139777993} + - component: {fileID: 248065651} + - component: {fileID: 248065658} + - component: {fileID: 248065657} + - component: {fileID: 248065656} + - component: {fileID: 248065655} + - component: {fileID: 248065654} + - component: {fileID: 248065653} m_Layer: 0 - m_Name: Ring_1_Left + m_Name: Magic Cube m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &139777993 +--- !u!4 &248065651 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139777992} - m_LocalRotation: {x: -0.00025817356, y: 0.00035699108, z: -0.14537643, w: 0.9893763} - m_LocalPosition: {x: -0.036576994, y: 0.00000019073485, z: 0.0000001502037} + m_GameObject: {fileID: 248065650} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3, y: 1.2, z: 5.25} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 161349714} - m_Father: {fileID: 1656508554} - m_RootOrder: 0 + - {fileID: 185363458} + - {fileID: 53683354} + - {fileID: 561255720} + m_Father: {fileID: 0} + m_RootOrder: 11 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &161349713 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 161349714} - m_Layer: 0 - m_Name: Ring_2_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &161349714 -Transform: +--- !u!114 &248065653 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 161349713} - m_LocalRotation: {x: -0.0013731687, y: -0.0005792431, z: -0.08538537, w: 0.9963469} - m_LocalPosition: {x: -0.028493328, y: -0.00000044822693, z: -0.0000003170967} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 953319088} - m_Father: {fileID: 139777993} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &163224874 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 163224875} - m_Layer: 0 - m_Name: Index_0_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &163224875 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 163224874} - m_LocalRotation: {x: 0.039005104, y: -0.077951096, z: -0.09432525, w: 0.9917182} - m_LocalPosition: {x: -0.059387933, y: -0.00000024288892, z: 0.0000000011920929} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1182756916} - m_Father: {fileID: 1612617676} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &172305590 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 172305591} - m_Layer: 0 - m_Name: Little_0_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &172305591 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172305590} - m_LocalRotation: {x: -0.018601296, y: 0.022547437, z: -0.058639184, w: 0.99785125} - m_LocalPosition: {x: -0.056403197, y: -0.00000059507784, z: 0.0000003004074} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1880415575} - m_Father: {fileID: 2055471706} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &185363457 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 185363458} - - component: {fileID: 185363463} - - component: {fileID: 185363462} - - component: {fileID: 185363460} - - component: {fileID: 185363459} - - component: {fileID: 185363461} - m_Layer: 0 - m_Name: Slicing highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &185363458 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 185363457} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.01, y: 0.4, z: 0.4} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 248065651} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &185363459 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 185363457} + m_GameObject: {fileID: 248065650} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 94f0bf7ce367d3942a1f56ec8dd56e41, type: 3} + m_Script: {fileID: 11500000, guid: 10f84f2b8a43cb84abcf29d7e444d45d, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!114 &185363460 + lockOnParentObjectLock: 1 + attachedToSnapZone: + m_PersistentCalls: + m_Calls: [] + detachedFromSnapZone: + m_PersistentCalls: + m_Calls: [] + lockObjectOnSnap: 0 +--- !u!114 &248065654 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 185363457} + m_GameObject: {fileID: 248065650} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} + m_Script: {fileID: 11500000, guid: 428efa2c1665b6745bfa9c1ec2026c93, type: 3} m_Name: m_EditorClassIdentifier: - uniqueName: Slicing highlight - tags: [] ---- !u!65 &185363461 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 185363457} - m_Material: {fileID: 0} - m_IsTrigger: 1 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 2, y: 1, z: 1.5} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &185363462 -MeshRenderer: + lockOnParentObjectLock: 1 + grabStarted: + m_PersistentCalls: + m_Calls: [] + grabEnded: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &248065655 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 185363457} + m_GameObject: {fileID: 248065650} m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 525bac3f393fa1349a1508822fb6abb0, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &185363463 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 185363457} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &221845636 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 221845637} - - component: {fileID: 221845638} - - component: {fileID: 221845642} - - component: {fileID: 221845641} - - component: {fileID: 221845640} - - component: {fileID: 221845639} - m_Layer: 0 - m_Name: Snap Zone Stairs (1) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &221845637 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221845636} - m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0.4, z: 1.8} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1745294527} - m_Father: {fileID: 33704422} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} ---- !u!114 &221845638 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 573907d717ac4934eb429f2f5978a132, type: 3} + m_Name: + m_EditorClassIdentifier: + lockOnParentObjectLock: 1 + touchStarted: + m_PersistentCalls: + m_Calls: [] + touchEnded: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &248065656 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221845636} + m_GameObject: {fileID: 248065650} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc6efdd45e6a00744aaf4c68264d6d7c, type: 3} + m_Script: {fileID: 11500000, guid: d1bcb89c5e4474247b7923fe1388ad1a, type: 3} m_Name: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} + m_Colliders: [] m_InteractionLayerMask: serializedVersion: 2 m_Bits: 4294967295 m_InteractionLayers: m_Bits: 1 - m_AttachTransform: {fileID: 1745294527} - m_KeepSelectedTargetValid: 1 - m_DisableVisualsWhenBlockedInGroup: 1 - m_StartingSelectedInteractable: {fileID: 0} - m_StartingTargetFilter: {fileID: 0} - m_HoverEntered: - m_PersistentCalls: - m_Calls: [] - m_HoverExited: - m_PersistentCalls: - m_Calls: [] - m_SelectEntered: - m_PersistentCalls: - m_Calls: [] - m_SelectExited: - m_PersistentCalls: - m_Calls: [] - m_StartingHoverFilters: [] - m_StartingSelectFilters: [] - m_OnHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_OnHoverExited: - m_PersistentCalls: - m_Calls: [] - m_OnSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_OnSelectExited: - m_PersistentCalls: - m_Calls: [] - m_ShowInteractableHoverMeshes: 1 - m_InteractableHoverMeshMaterial: {fileID: 0} - m_InteractableCantHoverMeshMaterial: {fileID: 0} - m_SocketActive: 1 - m_InteractableHoverScale: 1 - m_RecycleDelayTime: 1 - m_HoverSocketSnapping: 0 - m_SocketSnappingRadius: 0.1 - m_SocketScaleMode: 0 - m_FixedScale: {x: 1, y: 1, z: 1} - m_TargetBoundsSize: {x: 1, y: 1, z: 1} - shownHighlightObject: {fileID: 919132149155446097, guid: 3cd7c532cc585b54795fadfe1b32fc53, type: 3} - ShowHighlightInEditor: 1 - highlightMeshMaterial: {fileID: 2100000, guid: 34211d2175b5963469d4deb504fbcbaf, type: 2} - validationMaterial: {fileID: 2100000, guid: c6c888b079480654fbf337e7fe50b405, type: 2} - invalidMaterial: {fileID: 2100000, guid: 69e2b61a70de44f48909a564a7cf9c62, type: 2} - previewMesh: {fileID: 1390574009} ---- !u!65 &221845639 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221845636} - m_Material: {fileID: 0} - m_IsTrigger: 1 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 0.4, y: 0.4, z: 0.2} - m_Center: {x: 0, y: 0, z: -0.1} ---- !u!114 &221845640 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221845636} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 557aaed036734781b129d67ec56c9366, type: 3} - m_Name: - m_EditorClassIdentifier: - acceptedProcessSceneObjects: - - {fileID: 587381668} - - {fileID: 102893243} ---- !u!114 &221845641 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221845636} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: eb7be990fff0a2142a874601356b26df, type: 3} - m_Name: - m_EditorClassIdentifier: - lockOnParentObjectLock: 1 - objectAttached: - m_PersistentCalls: - m_Calls: [] - objectDetached: - m_PersistentCalls: - m_Calls: [] - lockOnUnsnap: 1 ---- !u!114 &221845642 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221845636} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: Sliced Cube (1)_SnapZone - tags: [] ---- !u!1 &227128475 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 227128476} - m_Layer: 0 - m_Name: Index_2_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &227128476 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 227128475} - m_LocalRotation: {x: 0.006532279, y: 0.0032989993, z: -0.17059992, w: 0.98531324} - m_LocalPosition: {x: -0.023907261, y: -0.00000026226044, z: 0.00000022888183} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1058700326} - m_Father: {fileID: 1182756916} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &232339299 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 232339300} - - component: {fileID: 232339303} - - component: {fileID: 232339304} - - component: {fileID: 232339302} - - component: {fileID: 232339301} - m_Layer: 8 - m_Name: Teleportation Spot - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &232339300 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 232339299} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1268751234} - m_Father: {fileID: 1756511964} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &232339301 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 232339299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 584ad12357614f4fbb5460fdf72e8cc6, type: 3} - m_Name: - m_EditorClassIdentifier: - lockOnParentObjectLock: 1 - teleportEnded: - m_PersistentCalls: - m_Calls: [] - initialized: - m_PersistentCalls: - m_Calls: [] ---- !u!65 &232339302 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 232339299} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 0.01, z: 1} - m_Center: {x: 0, y: 0.02, z: 0} ---- !u!114 &232339303 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 232339299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0193c710a3042c6479b28370a44e0b0f, type: 3} - m_Name: - m_EditorClassIdentifier: - m_InteractionManager: {fileID: 0} - m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_InteractionLayers: - m_Bits: 256 m_DistanceCalculationMode: 1 - m_SelectMode: 1 + m_SelectMode: 0 m_FocusMode: 1 - m_CustomReticle: {fileID: 3819676577015031517, guid: c9ea54082e6151843acb776fb52ed6f7, type: 3} + m_CustomReticle: {fileID: 0} m_AllowGazeInteraction: 0 m_AllowGazeSelect: 0 m_OverrideGazeTimeToSelect: 0 @@ -2029,128 +1705,92 @@ MonoBehaviour: m_OnDeactivate: m_PersistentCalls: m_Calls: [] - m_TeleportationProvider: {fileID: 0} - m_MatchOrientation: 2 - m_MatchDirectionalInput: 0 - m_TeleportTrigger: 3 - m_FilterSelectionByHitNormal: 0 - m_UpNormalToleranceDegrees: 30 - m_Teleporting: - m_PersistentCalls: - m_Calls: [] - m_TeleportAnchorTransform: {fileID: 1268751234} ---- !u!114 &232339304 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 232339299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: Teleportation Spot_1 - tags: [] ---- !u!1 &242342981 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 242342982} - - component: {fileID: 242342985} - - component: {fileID: 242342984} - - component: {fileID: 242342983} - m_Layer: 0 - m_Name: SnapPoint - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &242342982 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 242342981} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 503181885} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &242342983 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 242342981} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2018913513} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &242342984 -MeshFilter: + m_AttachTransform: {fileID: 0} + m_SecondaryAttachTransform: {fileID: 0} + m_UseDynamicAttach: 0 + m_MatchAttachPosition: 1 + m_MatchAttachRotation: 1 + m_SnapToColliderVolume: 1 + m_ReinitializeDynamicAttachEverySingleGrab: 1 + m_AttachEaseInTime: 0.15 + m_MovementType: 1 + m_VelocityDamping: 1 + m_VelocityScale: 1 + m_AngularVelocityDamping: 1 + m_AngularVelocityScale: 1 + m_TrackPosition: 1 + m_SmoothPosition: 0 + m_SmoothPositionAmount: 5 + m_TightenPosition: 0.5 + m_TrackRotation: 1 + m_SmoothRotation: 0 + m_SmoothRotationAmount: 5 + m_TightenRotation: 0.5 + m_TrackScale: 1 + m_SmoothScale: 0 + m_SmoothScaleAmount: 8 + m_TightenScale: 0.1 + m_ThrowOnDetach: 1 + m_ThrowSmoothingDuration: 0.25 + m_ThrowSmoothingCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ThrowVelocityScale: 1.5 + m_ThrowAngularVelocityScale: 1 + m_ForceGravityOnDetach: 0 + m_RetainTransformParent: 1 + m_AttachPointCompatibilityMode: 0 + m_StartingSingleGrabTransformers: [] + m_StartingMultipleGrabTransformers: [] + m_AddDefaultGrabTransformers: 1 + isTouchable: 1 + isGrabbable: 1 + isUsable: 0 +--- !u!54 &248065657 +Rigidbody: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 242342981} - m_Mesh: {fileID: 2119201252} ---- !u!114 &242342985 + m_GameObject: {fileID: 248065650} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &248065658 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 242342981} + m_GameObject: {fileID: 248065650} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 88ea78c93b844cc1b7f98cca70e8679c, type: 3} + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: - parent: {fileID: 503181886} ---- !u!1 &248065650 + serializedGuid: + serializedGuid: a81db1d2faa3e34da620e6951c2b6be7 + uniqueName: Magic Cube + tags: [] +--- !u!1 &283625089 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2158,283 +1798,32 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 248065651} - - component: {fileID: 248065658} - - component: {fileID: 248065657} - - component: {fileID: 248065656} - - component: {fileID: 248065655} - - component: {fileID: 248065654} - - component: {fileID: 248065653} + - component: {fileID: 283625090} m_Layer: 0 - m_Name: Magic Cube + m_Name: Thumb_1_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &248065651 +--- !u!4 &283625090 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 248065650} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -3, y: 1.2, z: 5.25} + m_GameObject: {fileID: 283625089} + m_LocalRotation: {x: 0.0000025456518, y: 0.0000026570444, z: 0.10506754, w: 0.9944651} + m_LocalPosition: {x: -0.03307885, y: 0.000000052452087, z: -0.00000030398368} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 185363458} - - {fileID: 53683354} - - {fileID: 561255720} - m_Father: {fileID: 0} - m_RootOrder: 10 + - {fileID: 1889204434} + m_Father: {fileID: 1074416408} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &248065653 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 248065650} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 10f84f2b8a43cb84abcf29d7e444d45d, type: 3} - m_Name: - m_EditorClassIdentifier: - lockOnParentObjectLock: 1 - attachedToSnapZone: - m_PersistentCalls: - m_Calls: [] - detachedFromSnapZone: - m_PersistentCalls: - m_Calls: [] - lockObjectOnSnap: 0 ---- !u!114 &248065654 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 248065650} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 428efa2c1665b6745bfa9c1ec2026c93, type: 3} - m_Name: - m_EditorClassIdentifier: - lockOnParentObjectLock: 1 - grabStarted: - m_PersistentCalls: - m_Calls: [] - grabEnded: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &248065655 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 248065650} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 573907d717ac4934eb429f2f5978a132, type: 3} - m_Name: - m_EditorClassIdentifier: - lockOnParentObjectLock: 1 - touchStarted: - m_PersistentCalls: - m_Calls: [] - touchEnded: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &248065656 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 248065650} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d1bcb89c5e4474247b7923fe1388ad1a, type: 3} - m_Name: - m_EditorClassIdentifier: - m_InteractionManager: {fileID: 0} - m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_InteractionLayers: - m_Bits: 1 - m_DistanceCalculationMode: 1 - m_SelectMode: 0 - m_FocusMode: 1 - m_CustomReticle: {fileID: 0} - m_AllowGazeInteraction: 0 - m_AllowGazeSelect: 0 - m_OverrideGazeTimeToSelect: 0 - m_GazeTimeToSelect: 0.5 - m_OverrideTimeToAutoDeselectGaze: 0 - m_TimeToAutoDeselectGaze: 3 - m_AllowGazeAssistance: 0 - m_FirstHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_LastHoverExited: - m_PersistentCalls: - m_Calls: [] - m_HoverEntered: - m_PersistentCalls: - m_Calls: [] - m_HoverExited: - m_PersistentCalls: - m_Calls: [] - m_FirstSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_LastSelectExited: - m_PersistentCalls: - m_Calls: [] - m_SelectEntered: - m_PersistentCalls: - m_Calls: [] - m_SelectExited: - m_PersistentCalls: - m_Calls: [] - m_FirstFocusEntered: - m_PersistentCalls: - m_Calls: [] - m_LastFocusExited: - m_PersistentCalls: - m_Calls: [] - m_FocusEntered: - m_PersistentCalls: - m_Calls: [] - m_FocusExited: - m_PersistentCalls: - m_Calls: [] - m_Activated: - m_PersistentCalls: - m_Calls: [] - m_Deactivated: - m_PersistentCalls: - m_Calls: [] - m_StartingHoverFilters: [] - m_StartingSelectFilters: [] - m_StartingInteractionStrengthFilters: [] - m_OnFirstHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_OnLastHoverExited: - m_PersistentCalls: - m_Calls: [] - m_OnHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_OnHoverExited: - m_PersistentCalls: - m_Calls: [] - m_OnSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_OnSelectExited: - m_PersistentCalls: - m_Calls: [] - m_OnSelectCanceled: - m_PersistentCalls: - m_Calls: [] - m_OnActivate: - m_PersistentCalls: - m_Calls: [] - m_OnDeactivate: - m_PersistentCalls: - m_Calls: [] - m_AttachTransform: {fileID: 0} - m_SecondaryAttachTransform: {fileID: 0} - m_UseDynamicAttach: 0 - m_MatchAttachPosition: 1 - m_MatchAttachRotation: 1 - m_SnapToColliderVolume: 1 - m_ReinitializeDynamicAttachEverySingleGrab: 1 - m_AttachEaseInTime: 0.15 - m_MovementType: 1 - m_VelocityDamping: 1 - m_VelocityScale: 1 - m_AngularVelocityDamping: 1 - m_AngularVelocityScale: 1 - m_TrackPosition: 1 - m_SmoothPosition: 0 - m_SmoothPositionAmount: 5 - m_TightenPosition: 0.5 - m_TrackRotation: 1 - m_SmoothRotation: 0 - m_SmoothRotationAmount: 5 - m_TightenRotation: 0.5 - m_TrackScale: 1 - m_SmoothScale: 0 - m_SmoothScaleAmount: 8 - m_TightenScale: 0.1 - m_ThrowOnDetach: 1 - m_ThrowSmoothingDuration: 0.25 - m_ThrowSmoothingCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - m_ThrowVelocityScale: 1.5 - m_ThrowAngularVelocityScale: 1 - m_ForceGravityOnDetach: 0 - m_RetainTransformParent: 1 - m_AttachPointCompatibilityMode: 0 - m_StartingSingleGrabTransformers: [] - m_StartingMultipleGrabTransformers: [] - m_AddDefaultGrabTransformers: 1 - isTouchable: 1 - isGrabbable: 1 - isUsable: 0 ---- !u!54 &248065657 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 248065650} - serializedVersion: 2 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 - m_UseGravity: 1 - m_IsKinematic: 1 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 ---- !u!114 &248065658 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 248065650} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: Magic Cube - tags: [] ---- !u!1001 &286338418 -PrefabInstance: +--- !u!1001 &286338418 +PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: @@ -2442,7 +1831,7 @@ PrefabInstance: m_Modifications: - target: {fileID: -8679921383154817045, guid: 1abcf478131f05645a9e8efbebd736db, type: 3} propertyPath: m_RootOrder - value: 3 + value: 4 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 1abcf478131f05645a9e8efbebd736db, type: 3} propertyPath: m_LocalPosition.x @@ -2518,37 +1907,6 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 1abcf478131f05645a9e8efbebd736db, type: 3} ---- !u!1 &289335516 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 289335517} - m_Layer: 0 - m_Name: RayOrigin - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &289335517 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 289335516} - m_LocalRotation: {x: 0.2164396, y: 0, z: 0, w: 0.97629607} - m_LocalPosition: {x: 0.0215, y: 0.0244, z: -0.0387} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2115926223} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 25, y: 0, z: 0} --- !u!1001 &308985786 PrefabInstance: m_ObjectHideFlags: 0 @@ -2558,7 +1916,7 @@ PrefabInstance: m_Modifications: - target: {fileID: -8679921383154817045, guid: 2432b9d584ff8c44c88073c39743e60b, type: 3} propertyPath: m_RootOrder - value: 2 + value: 3 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 2432b9d584ff8c44c88073c39743e60b, type: 3} propertyPath: m_LocalScale.x @@ -2646,6 +2004,37 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 2432b9d584ff8c44c88073c39743e60b, type: 3} +--- !u!1 &326836475 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 326836476} + m_Layer: 0 + m_Name: Ring_Tip_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &326836476 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326836475} + m_LocalRotation: {x: 0.000000011175867, y: -0.000000022351747, z: -0.00000020395967, w: 1} + m_LocalPosition: {x: -0.020554436, y: 0.000000114440915, z: -0.00000007867813} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 933831182} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &343040741 PrefabInstance: m_ObjectHideFlags: 0 @@ -2723,7 +2112,7 @@ PrefabInstance: objectReference: {fileID: 2100000, guid: abb9f2a27e7f7184b881acce31145657, type: 2} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: be0e1e3e3f7708e4ca1d7556ae7893bc, type: 3} ---- !u!1 &375530499 +--- !u!1 &361187390 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2731,147 +2120,300 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 375530500} - - component: {fileID: 375530502} - - component: {fileID: 375530501} - m_Layer: 8 - m_Name: Plane + - component: {fileID: 361187391} + m_Layer: 0 + m_Name: Middle_Tip_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &375530500 +--- !u!4 &361187391 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 375530499} - m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_GameObject: {fileID: 361187390} + m_LocalRotation: {x: -0.00000002980233, y: -0.00000005308539, z: -0.000000042258765, w: 1} + m_LocalPosition: {x: -0.022676239, y: 0.00000029563904, z: -0.000000077486035} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1714243700} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &361400738 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 361400739} + - component: {fileID: 361400748} + - component: {fileID: 361400747} + - component: {fileID: 361400746} + - component: {fileID: 361400745} + - component: {fileID: 361400744} + - component: {fileID: 361400743} + - component: {fileID: 361400742} + - component: {fileID: 361400741} + - component: {fileID: 361400740} + m_Layer: 0 + m_Name: XR Rig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &361400739 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 361400738} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 655638806} - m_Father: {fileID: 1883760419} + - {fileID: 65634329} + m_Father: {fileID: 1634918261} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} ---- !u!23 &375530501 -MeshRenderer: + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &361400740 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 375530499} + m_GameObject: {fileID: 361400738} m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 5984489a6c8753743953c8d64d3265fb, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &375530502 -MeshFilter: + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58a9a7b4435e36f4fbc7000edd687974, type: 3} + m_Name: + m_EditorClassIdentifier: + moveScheme: 0 + turnStyle: 0 + moveForwardSource: 0 + actionAssets: + - {fileID: -944628639613478452, guid: de2411ef647d9f24d981120efb63e621, type: 3} + actionMaps: [] + actions: [] + baseControlScheme: Generic XR Controller + noncontinuousControlScheme: Noncontinuous Move + continuousControlScheme: Continuous Move + continuousMoveProvider: {fileID: 361400743} + continuousTurnProvider: {fileID: 361400744} + snapTurnProvider: {fileID: 361400747} + headForwardSource: {fileID: 2008584333} + leftHandForwardSource: {fileID: 440165965} + rightHandForwardSource: {fileID: 1729154661} +--- !u!114 &361400741 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 375530499} - m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &436658223 -GameObject: + m_GameObject: {fileID: 361400738} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: af6bf904e410ee8479f9093d8830d1f8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LocomotionProvider: {fileID: 361400747} + m_MinHeight: 0 + m_MaxHeight: Infinity +--- !u!143 &361400742 +CharacterController: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 436658224} - m_Layer: 0 - m_Name: Thumb_Palm_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &436658224 -Transform: + m_GameObject: {fileID: 361400738} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Height: 1.36144 + m_Radius: 0.1 + m_SlopeLimit: 45 + m_StepOffset: 0.3 + m_SkinWidth: 0.08 + m_MinMoveDistance: 0.001 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &361400743 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 436658223} - m_LocalRotation: {x: -0.7044048, y: 0.08700629, z: 0.3122117, w: 0.6314806} - m_LocalPosition: {x: -0.042795867, y: -0.014722028, z: 0.029782485} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1038510653} - m_Father: {fileID: 2053954419} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &487514511 -GameObject: + m_GameObject: {fileID: 361400738} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bf296fc962d7184ab14ad1841598d5f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_System: {fileID: 361400746} + m_MoveSpeed: 1 + m_EnableStrafe: 1 + m_EnableFly: 0 + m_UseGravity: 1 + m_GravityApplicationMode: 0 + m_ForwardSource: {fileID: 2008584333} + m_LeftHandMoveAction: + m_UseReference: 1 + m_Action: + m_Name: Left Hand Move + m_Type: 0 + m_ExpectedControlType: + m_Id: 6da12c60-ad99-45b3-a0b1-a4ee1d30ddcc + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 6972639530819350904, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_RightHandMoveAction: + m_UseReference: 1 + m_Action: + m_Name: Right Hand Move + m_Type: 0 + m_ExpectedControlType: + m_Id: 77f364a5-e031-452a-af50-144d41955e70 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -8198699208435500284, guid: de2411ef647d9f24d981120efb63e621, type: 3} +--- !u!114 &361400744 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 487514512} - m_Layer: 0 - m_Name: Little_Palm_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &487514512 -Transform: + m_GameObject: {fileID: 361400738} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 919e39492806b334982b6b84c90dd927, type: 3} + m_Name: + m_EditorClassIdentifier: + m_System: {fileID: 361400746} + m_TurnSpeed: 60 + m_LeftHandTurnAction: + m_UseReference: 1 + m_Action: + m_Name: Left Hand Turn + m_Type: 0 + m_ExpectedControlType: + m_Id: d065cb11-e9f6-4747-a3d4-1c032fc345a0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 1010738217276881514, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_RightHandTurnAction: + m_UseReference: 1 + m_Action: + m_Name: Right Hand Turn + m_Type: 0 + m_ExpectedControlType: + m_Id: e043a43a-0352-4ee2-ab81-9dafdfb41dc2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -6493913391331992944, guid: de2411ef647d9f24d981120efb63e621, type: 3} +--- !u!114 &361400745 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 487514511} - m_LocalRotation: {x: 0.99290055, y: -0.033564012, z: 0.11202527, w: 0.02173406} - m_LocalPosition: {x: -0.048623275, y: 0.0027686262, z: -0.026522674} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1518198310} - m_Father: {fileID: 2053954419} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &503181884 + m_GameObject: {fileID: 361400738} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01f69dc1cb084aa42b2f2f8cd87bc770, type: 3} + m_Name: + m_EditorClassIdentifier: + m_System: {fileID: 361400746} + m_DelayTime: 0 +--- !u!114 &361400746 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 361400738} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 03a5df2202a8b96488c744be3bd0c33e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Timeout: 10 + m_XROrigin: {fileID: 361400748} +--- !u!114 &361400747 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 361400738} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2213c36610e3b1c4bbf886810ed9db12, type: 3} + m_Name: + m_EditorClassIdentifier: + m_System: {fileID: 361400746} + m_TurnAmount: 45 + m_DebounceTime: 0.5 + m_EnableTurnLeftRight: 1 + m_EnableTurnAround: 1 + m_DelayTime: 0 + m_LeftHandSnapTurnAction: + m_UseReference: 1 + m_Action: + m_Name: Left Hand Snap Turn + m_Type: 0 + m_ExpectedControlType: + m_Id: bcae984e-e222-4aec-9899-6a2de88a7166 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 1010738217276881514, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_RightHandSnapTurnAction: + m_UseReference: 1 + m_Action: + m_Name: Right Hand Snap Turn + m_Type: 0 + m_ExpectedControlType: + m_Id: ef35997d-2cb6-4340-9edd-1239db5332f0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -6493913391331992944, guid: de2411ef647d9f24d981120efb63e621, type: 3} +--- !u!114 &361400748 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 361400738} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e0cb9aa70a22847b5925ee5f067c10a9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Camera: {fileID: 2008584329} + m_OriginBaseGameObject: {fileID: 361400738} + m_CameraFloorOffsetObject: {fileID: 65634328} + m_RequestedTrackingOriginMode: 0 + m_CameraYOffset: 1.36144 +--- !u!1 &362215159 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2879,163 +2421,170 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 503181885} - - component: {fileID: 503181886} - - component: {fileID: 503181890} - - component: {fileID: 503181889} - - component: {fileID: 503181888} - - component: {fileID: 503181887} + - component: {fileID: 362215160} + - component: {fileID: 362215162} + - component: {fileID: 362215161} m_Layer: 0 - m_Name: Magic Cube_SnapZone + m_Name: EventSystem m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &503181885 +--- !u!4 &362215160 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 503181884} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1.2, z: 0.7500001} + m_GameObject: {fileID: 362215159} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 242342982} - m_Father: {fileID: 1756511964} - m_RootOrder: 0 + m_Children: [] + m_Father: {fileID: 1634918261} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &503181886 +--- !u!114 &362215161 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 503181884} + m_GameObject: {fileID: 362215159} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc6efdd45e6a00744aaf4c68264d6d7c, type: 3} + m_Script: {fileID: 11500000, guid: ab68ce6587aab0146b8dabefbd806791, type: 3} m_Name: m_EditorClassIdentifier: - m_InteractionManager: {fileID: 0} - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_InteractionLayers: - m_Bits: 1 - m_AttachTransform: {fileID: 242342982} - m_KeepSelectedTargetValid: 1 - m_DisableVisualsWhenBlockedInGroup: 1 - m_StartingSelectedInteractable: {fileID: 0} - m_StartingTargetFilter: {fileID: 0} - m_HoverEntered: - m_PersistentCalls: - m_Calls: [] - m_HoverExited: - m_PersistentCalls: - m_Calls: [] - m_SelectEntered: - m_PersistentCalls: - m_Calls: [] - m_SelectExited: - m_PersistentCalls: - m_Calls: [] - m_StartingHoverFilters: [] - m_StartingSelectFilters: [] - m_OnHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_OnHoverExited: - m_PersistentCalls: - m_Calls: [] - m_OnSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_OnSelectExited: - m_PersistentCalls: - m_Calls: [] - m_ShowInteractableHoverMeshes: 1 - m_InteractableHoverMeshMaterial: {fileID: 0} - m_InteractableCantHoverMeshMaterial: {fileID: 0} - m_SocketActive: 1 - m_InteractableHoverScale: 1 - m_RecycleDelayTime: 1 - m_HoverSocketSnapping: 0 - m_SocketSnappingRadius: 0.1 - m_SocketScaleMode: 0 - m_FixedScale: {x: 1, y: 1, z: 1} - m_TargetBoundsSize: {x: 1, y: 1, z: 1} - shownHighlightObject: {fileID: 919132149155446097, guid: 1ed1d5cc1197f8144a46c56a59341db7, type: 3} - ShowHighlightInEditor: 1 - highlightMeshMaterial: {fileID: 2100000, guid: 34211d2175b5963469d4deb504fbcbaf, type: 2} - validationMaterial: {fileID: 2100000, guid: c6c888b079480654fbf337e7fe50b405, type: 2} - invalidMaterial: {fileID: 2100000, guid: 69e2b61a70de44f48909a564a7cf9c62, type: 2} - previewMesh: {fileID: 2119201252} ---- !u!65 &503181887 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 503181884} - m_Material: {fileID: 0} - m_IsTrigger: 1 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 0.4, y: 0.4, z: 0.4} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &503181888 + m_SendPointerHoverToParent: 1 + m_ClickSpeed: 0.3 + m_MoveDeadzone: 0.6 + m_RepeatDelay: 0.5 + m_RepeatRate: 0.1 + m_TrackedDeviceDragThresholdMultiplier: 2 + m_TrackedScrollDeltaMultiplier: 5 + m_ActiveInputMode: 0 + m_MaxTrackedDeviceRaycastDistance: 1000 + m_EnableXRInput: 1 + m_EnableMouseInput: 1 + m_EnableTouchInput: 1 + m_PointAction: {fileID: 0} + m_LeftClickAction: {fileID: 0} + m_MiddleClickAction: {fileID: 0} + m_RightClickAction: {fileID: 0} + m_ScrollWheelAction: {fileID: 0} + m_NavigateAction: {fileID: 0} + m_SubmitAction: {fileID: 0} + m_CancelAction: {fileID: 0} + m_EnableBuiltinActionsAsFallback: 1 + m_EnableGamepadInput: 1 + m_EnableJoystickInput: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel +--- !u!114 &362215162 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 503181884} + m_GameObject: {fileID: 362215159} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 557aaed036734781b129d67ec56c9366, type: 3} + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} m_Name: m_EditorClassIdentifier: - acceptedProcessSceneObjects: - - {fileID: 248065658} ---- !u!114 &503181889 -MonoBehaviour: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!1 &375530499 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 503181884} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: eb7be990fff0a2142a874601356b26df, type: 3} - m_Name: - m_EditorClassIdentifier: - lockOnParentObjectLock: 1 - objectAttached: - m_PersistentCalls: - m_Calls: [] - objectDetached: - m_PersistentCalls: - m_Calls: [] - lockOnUnsnap: 1 ---- !u!114 &503181890 -MonoBehaviour: + serializedVersion: 6 + m_Component: + - component: {fileID: 375530500} + - component: {fileID: 375530502} + - component: {fileID: 375530501} + m_Layer: 8 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &375530500 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 503181884} + m_GameObject: {fileID: 375530499} + m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 655638806} + m_Father: {fileID: 1883760419} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!23 &375530501 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 375530499} m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: Magic Cube_SnapZone_1 - tags: [] ---- !u!1 &518602150 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 5984489a6c8753743953c8d64d3265fb, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &375530502 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 375530499} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &388840134 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -3043,127 +2592,147 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 518602151} - - component: {fileID: 518602152} - - component: {fileID: 518602154} - - component: {fileID: 518602153} - m_Layer: 8 - m_Name: Teleportation area + - component: {fileID: 388840135} + m_Layer: 0 + m_Name: Ring_Palm_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &518602151 + m_IsActive: 1 +--- !u!4 &388840135 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 518602150} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 1.5, y: 0, z: 1.5} + m_GameObject: {fileID: 388840134} + m_LocalRotation: {x: 0.99804187, y: -0.04426889, z: 0.04315787, w: 0.009497783} + m_LocalPosition: {x: -0.05238823, y: 0.0045133065, z: -0.011750946} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 33704422} - m_RootOrder: 4 + m_Children: + - {fileID: 695049119} + m_Father: {fileID: 1909973946} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &518602152 -MonoBehaviour: +--- !u!1 &391997630 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 518602150} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: Teleportation area - tags: [] ---- !u!114 &518602153 -MonoBehaviour: + serializedVersion: 6 + m_Component: + - component: {fileID: 391997631} + m_Layer: 0 + m_Name: Thumb_Palm_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &391997631 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 518602150} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: db00376f7b7d66e4da00d63492cb7971, type: 3} - m_Name: - m_EditorClassIdentifier: - m_InteractionManager: {fileID: 0} - m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 + m_GameObject: {fileID: 391997630} + m_LocalRotation: {x: -0.7044048, y: 0.08700629, z: 0.3122117, w: 0.6314806} + m_LocalPosition: {x: -0.042795867, y: -0.014722028, z: 0.029782485} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 595536807} + m_Father: {fileID: 1909973946} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &440165964 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 440165965} + - component: {fileID: 440165968} + - component: {fileID: 440165967} + - component: {fileID: 440165966} + m_Layer: 0 + m_Name: Left Base Controller + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &440165965 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 440165964} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 506692965} + m_Father: {fileID: 1773926310} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!135 &440165966 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 440165964} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.05 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &440165967 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 440165964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b7231d59cedbff745ae8517a2b954506, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 2089871579} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 1 m_InteractionLayers: - m_Bits: 256 - m_DistanceCalculationMode: 1 - m_SelectMode: 1 - m_FocusMode: 1 - m_CustomReticle: {fileID: 3819676577015031517, guid: c9ea54082e6151843acb776fb52ed6f7, type: 3} - m_AllowGazeInteraction: 0 - m_AllowGazeSelect: 0 - m_OverrideGazeTimeToSelect: 0 - m_GazeTimeToSelect: 0.5 - m_OverrideTimeToAutoDeselectGaze: 0 - m_TimeToAutoDeselectGaze: 3 - m_AllowGazeAssistance: 0 - m_FirstHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_LastHoverExited: - m_PersistentCalls: - m_Calls: [] + m_Bits: 1 + m_AttachTransform: {fileID: 1199504349} + m_KeepSelectedTargetValid: 1 + m_DisableVisualsWhenBlockedInGroup: 1 + m_StartingSelectedInteractable: {fileID: 0} + m_StartingTargetFilter: {fileID: 0} m_HoverEntered: m_PersistentCalls: m_Calls: [] m_HoverExited: m_PersistentCalls: m_Calls: [] - m_FirstSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_LastSelectExited: - m_PersistentCalls: - m_Calls: [] m_SelectEntered: m_PersistentCalls: m_Calls: [] m_SelectExited: m_PersistentCalls: m_Calls: [] - m_FirstFocusEntered: - m_PersistentCalls: - m_Calls: [] - m_LastFocusExited: - m_PersistentCalls: - m_Calls: [] - m_FocusEntered: - m_PersistentCalls: - m_Calls: [] - m_FocusExited: - m_PersistentCalls: - m_Calls: [] - m_Activated: - m_PersistentCalls: - m_Calls: [] - m_Deactivated: - m_PersistentCalls: - m_Calls: [] m_StartingHoverFilters: [] m_StartingSelectFilters: [] - m_StartingInteractionStrengthFilters: [] - m_OnFirstHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_OnLastHoverExited: - m_PersistentCalls: - m_Calls: [] m_OnHoverEntered: m_PersistentCalls: m_Calls: [] @@ -3176,1764 +2745,100 @@ MonoBehaviour: m_OnSelectExited: m_PersistentCalls: m_Calls: [] - m_OnSelectCanceled: - m_PersistentCalls: - m_Calls: [] - m_OnActivate: - m_PersistentCalls: - m_Calls: [] - m_OnDeactivate: - m_PersistentCalls: - m_Calls: [] - m_TeleportationProvider: {fileID: 0} - m_MatchOrientation: 0 - m_MatchDirectionalInput: 0 - m_TeleportTrigger: 3 - m_FilterSelectionByHitNormal: 0 - m_UpNormalToleranceDegrees: 30 - m_Teleporting: - m_PersistentCalls: - m_Calls: [] ---- !u!64 &518602154 -MeshCollider: + m_SelectActionTrigger: 1 + m_HideControllerOnSelect: 0 + m_AllowHoveredActivate: 0 + m_TargetPriorityMode: 0 + m_PlayAudioClipOnSelectEntered: 0 + m_AudioClipForOnSelectEntered: {fileID: 0} + m_PlayAudioClipOnSelectExited: 0 + m_AudioClipForOnSelectExited: {fileID: 0} + m_PlayAudioClipOnSelectCanceled: 0 + m_AudioClipForOnSelectCanceled: {fileID: 0} + m_PlayAudioClipOnHoverEntered: 0 + m_AudioClipForOnHoverEntered: {fileID: 0} + m_PlayAudioClipOnHoverExited: 0 + m_AudioClipForOnHoverExited: {fileID: 0} + m_PlayAudioClipOnHoverCanceled: 0 + m_AudioClipForOnHoverCanceled: {fileID: 0} + m_AllowHoverAudioWhileSelecting: 1 + m_PlayHapticsOnSelectEntered: 1 + m_HapticSelectEnterIntensity: 0.5 + m_HapticSelectEnterDuration: 0.25 + m_PlayHapticsOnSelectExited: 1 + m_HapticSelectExitIntensity: 0.5 + m_HapticSelectExitDuration: 0.125 + m_PlayHapticsOnSelectCanceled: 0 + m_HapticSelectCancelIntensity: 0 + m_HapticSelectCancelDuration: 0 + m_PlayHapticsOnHoverEntered: 1 + m_HapticHoverEnterIntensity: 0.25 + m_HapticHoverEnterDuration: 0.25 + m_PlayHapticsOnHoverExited: 1 + m_HapticHoverExitIntensity: 0.25 + m_HapticHoverExitDuration: 0.125 + m_PlayHapticsOnHoverCanceled: 0 + m_HapticHoverCancelIntensity: 0 + m_HapticHoverCancelDuration: 0 + m_AllowHoverHapticsWhileSelecting: 1 + m_ImproveAccuracyWithSphereCollider: 0 + m_PhysicsLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_PhysicsTriggerInteraction: 1 + precisionGrab: 1 +--- !u!114 &440165968 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 518602150} - m_Material: {fileID: 0} - m_IsTrigger: 0 + m_GameObject: {fileID: 440165964} m_Enabled: 1 - serializedVersion: 4 - m_Convex: 0 - m_CookingOptions: 30 - m_Mesh: {fileID: -8378139086155444565, guid: 3d993d7375e6eec4d971b7d72f65da14, type: 3} ---- !u!43 &524671518 -Mesh: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - serializedVersion: 10 - m_SubMeshes: - - serializedVersion: 2 - firstByte: 0 - indexCount: 960 - topology: 0 - baseVertex: 0 - firstVertex: 0 - vertexCount: 205 - localAABB: - m_Center: {x: -0.000000029802322, y: 0.000000029802322, z: 0.000000007450581} - m_Extent: {x: 0.2, y: 0.2, z: 0.19999999} - m_Shapes: - vertices: [] - shapes: [] - channels: [] - fullWeights: [] - m_BindPose: [] - m_BoneNameHashes: - m_RootBoneNameHash: 0 - m_BonesAABB: [] - m_VariableBoneCountWeights: - m_Data: - m_MeshCompression: 0 - m_IsReadable: 0 - m_KeepVertices: 1 - m_KeepIndices: 1 - m_IndexFormat: 0 - m_IndexBuffer: 00000100020001000300020001000400030002000300050004000600030004000700060003000800050003000600080005000800090007000a00060007000b000a0006000c00080006000a000c0008000d00090008000c000d0009000d000e000b000f000a000b0010000f000a0011000c000f0011000a000c0012000d00110012000c00100013000f001000140013000f00150011000f00130015001400160013001400170016000d0018000e00120018000d0011001900120015001900110013001a001500130016001a0017001b00160017001c001b001c001d001b0016001b001e0016001e001a001d001f001b001b001f001e001d0020001f0015001a0021001500210019001900220012001200220018001a001e0023001a0023002100200024001f002000250024001f0026001e001e00260023001f0024002600250027002400250028002700240027002900240029002600260029002a0026002a00230023002a002b00210023002b0021002b002c0021002c00190019002c0022002c002b002d002b002e002d0022002c002f002c002d002f002e0030002d002e003100300022002f0032001800220032002f002d0033002d0030003300310034003000310035003400350036003400350037003600340036003800300034003900340038003900300039003300390038003a0039003a003b00330039003b003b003a003c002f0033003d003d0033003b0032002f003d003d003b003e003e003b003c0032003d003f003f003d003e00400032003f001800320040000e00180040000e00400041000e004100420040003f0043004000430041003f003e0044003f00440043003e003c0045003e004500440041004600420042004600470041004300480041004800460043004400490043004900480046004a00470047004a004b0048004c00460046004c004a004a004d004b004b004d004e004a004f004d004c004f004a004c0050004f00480051004c00510050004c0048004900510051005200500044005300490044004500530049005400510051005400520049005300540053004500550054005300560053005500560052005400570054005600570045005800550045003c0058003c005900580059005a00580059005b005a00550058005c0058005a005c00560055005d0055005c005d005b005e005a005b005f005e005a0060005c005a005e0060005f0061005e005f00620061005e00610063005e00630060006000630064005c00600065006000640065005d005c00650065006400660056005d0067005700560067005d006500680068006500660067005d006800570067006900670068006a0067006a006900680066006b0068006b006a00570069006c00520057006c006d0052006c006d006c006e006f006d006e006c00690070006e006c00700069006a0071006900710070006f006e00720073006f0072006e007000740072006e007400730072007500760073007500750072007700720074007700770074007800740070007900740079007800700071007900780079007a006a007b0071006a006b007b0071007c00790079007c007a0071007b007c007b006b007d007c007b007e007b007d007e007a007c007f007c007e007f006b0080007d006b00660080006600810080008100820080008100830082007d00800084008000820084007e007d0085007d008400850083008600820083008700860082008800840082008600880087008900860087008a008900860089008b0086008b00880088008b008c00840088008d0088008c008d00850084008d008d008c008e007e0085008f007f007e008f0085008d00900090008d008e008f00850090007f008f0091008f00900092008f009200910090008e0093009000930092007f00910094007a007f00940095007a009400950094009600970095009600940091009800960094009800910092009900910099009800970096009a009b0097009a00960098009c009a0096009c009b009a009d009e009b009d009d009a009f009a009c009f009f009c00a0009c009800a1009c00a100a00098009900a100a000a100a2009200a300990092009300a3009900a400a100a100a400a2009900a300a400a3009300a500a400a300a600a300a500a600a200a400a700a400a600a7009300a800a50093008e00a8008e00a900a800a900aa00a800a900ab00aa00a500a800ac00a800aa00ac00a600a500ad00a500ac00ad00ab00ae00aa00ab00af00ae00aa00b000ac00aa00ae00b000af00b100ae00af00b200b100ae00b100b300ae00b300b000b000b300b400ac00b000b500b000b400b500ad00ac00b500b500b400b600b700b500b600ad00b500b700b700b600b800b900ad00b700a600ad00b900a700a600b900b700b800ba00b900b700ba00ba00b800bb00a700b900bc00b900ba00bc00ba00bb00bd00bc00ba00bd00bd00bb00be00a700bc00bf00a200a700bf00c000a200bf00bc00bd00c100bf00bc00c100bd00be00c200c100bd00c200c200be00c300c400c200c300c000bf00c500c500bf00c100c600c000c500c700c200c400c700c100c200c500c100c700c800c700c400c600c500c900c900c500c700c900c700c800ca00c600c900cb00c900c800ca00c900cb00cc00ca00cb00 - m_VertexData: - serializedVersion: 3 - m_VertexCount: 205 - m_Channels: - - stream: 0 - offset: 0 - format: 0 - dimension: 3 - - stream: 0 - offset: 12 - format: 0 - dimension: 3 - - stream: 0 - offset: 24 - format: 0 - dimension: 4 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 40 - format: 0 - dimension: 2 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - m_DataSize: 9840 - _typelessdata: 4d14cbb2cbcc4cbe7d3fd83200000000000080bf00000000587873bf000000000d389ebe000080bfc32e3a3e00000000134d7e3c6f3c46be10ab433da2b6ab3d936576bfb91e843e0d2974bf7c301cbeba9e84be000080bff3e8223e753d213d267226bd6f3c46be77dbf13cbdc660be936576bff74e233e52816cbf1e301c3e80bdb3be000080bf9274513e753d213dc76ce2bcd82d37be1d36ae3ddb8112bed7e862bf5472e13e587873bf0000000013389ebe000080bfc22e3a3e753da13d6115053dc9362ebe53cccc3d0e5b263e73c459bf73ffff3ed65b74bfb71887bede190ebe000080bf23a30b3e753da13d5436aebdc6362ebe6b247d3df3c3d9be6dc459bfe8369e3e0e925abf9a18873ebfc8e5be000080bf61ba683e753da13ddcfb2cbc183214bebcf00c3e4f5a86bd643e3bbf75c32d3fe0b378bf0829debd5ad857be000080bff2e8223e2edcf13d30ba3e3df1a806be8cc0123e1b026a3e0c522cbf9e0d343f8a5274bf085298bed8d4cf3c000080bfa6bae83d30dcf13d043294bd0c3214be1ec1f03d061ab1be593e3bbfb172163fd4eb68bf132ade3d9d0fcdbe000080bf9274513e30dcf13d9dabf9bdeba806bee164b53daf2919bf01522cbf7d8ede3e90d741bfdd51983e91dd14bf000080bf1900803e30dcf13d413ec23b2bbecdbd25fc303e44aa133c416401bf93e15c3fa2967cbfab2714be457898bd000080bf22a30b3e743d213ebd6a623d662eb7bd86362e3ee5828d3ef2f9e4be24c4593fe97f75bfd0c53ebe28c55a3e000080bf062fba3d753d213e9d5757bd9457d7bd82af253ebf9686bea29606bf761b4f3f587873bf0000000017389ebe000080bfc22e3a3e743d213e0fe2d9bd25becdbd5e9d0b3e07b303bf356401bfce56313f9f8c57bfd427143e1c0d05bf000080bf63ba683e753d213edf3114be5d2eb7bd4f56d73d573e39bfc0f9e4be0196063fe27816bf00000000e41b4fbf000080bf01a38b3e753d213ee24dfe3c47be4dbda5ab433ee426143e0db96fbe641d763f2d307dbf18e282bd6f79083e000080bfa5bae83dc18c493e9d96b23d65be4dbd57fc303e0765e53e54b96fbec3e15c3f3dd463bfce4accbc2d25e93e000080bf44a38b3dc28c493ef36ce2bcc16c62bdabc6423e8eb81dbeaa6f89be916e733f3a047cbfcbb526bd4b0c2fbe000080bff2e8223ec08c493ef92db7bdcb6c62bd79362e3ee25fdebeb26f89beca1d5c3f8c9b65bff9b4263d2575e1be000080bf9274513ec18c493e93257d3d330b18b4c1c6423e2a319e3ea722913ca66e733f707873bf0000000087379e3e000080bfe42eba3d0edc713ec6c1f03d0a11a632c9af253e2679163f00000000b21b4f3f3d074fbf268be33c496a163f000080bf052f3a3d0edc713e4d14cbb2c4c05332cccc4c3e00000000000000000000803fb6e67fbf828ee3bc00000000000080bf22a30b3e0ddc713ef42db73da16c623d7c362e3ee45fde3ea46f893eca1d5c3f8a9b65bfe8b3263d3475e13e000080bf22a38b3dad158d3ee4ba0c3e61be4d3d859d0b3ecea02e3f1ab96f3eec56313f6fbe3abf19fb1b3ee7b52a3f000080bf052fba3cad158d3ee9ba0cbe5dbe4dbd859d0b3ec9a02ebf25b96fbef056313f33c738bfc5e2823d816c30bf000080bf1900803ec28c493ea2257dbdb6f88732c1c6423e2b319ebefc2391bca56e733f6e7873bf0000000087379ebe000080bfc22e3a3e0edc713eeb6ce23c9e6c623dafc6423e9fb81d3e9b6f893e916e733f3c047cbf1fb426bd400c2f3e000080bf84bae83dad158d3e07e2d93d2abecd3d5f9d0b3e04b3033f3664013fd056313fa28c57bff527143e150d053f000080bfc22e3a3d533da13edb31143e5e2eb73d4f56d73d593e393fb6f9e43e0396063fc9ba2bbfca838d3e4d2d303f000080bf00000000533da13e97abf93defa8063ee164b53db429193ffe512c3f758ede3e9dd741bf4152983e64dd143f000080bf052fba3c0265b53e8f57573d9957d73d84af253ec696863e9e96063f771b4f3f567873bf000000001f389e3e000080bfc22eba3d533da13edb31943d2232143e0bc1f03deb19b13e663e3b3faa72163fe1eb68bf8f2ade3d620fcd3e000080bf23a38b3d0265b53e4d36ae3dca362e3e6b247d3df5c3d93e6fc4593fe1369e3e27925abfec18873e2fc8e53e000080bf052f3a3db08cc93efc4dfebc4fbe4d3da5ab433ef32614be06b96f3e641d763f2d307dbf12e282bd7e7908be000080bff3e8223ead158d3ecec1f0bd0a11a632c7af253e247916bf00000000b31b4f3f3f074fbf5c8ae33c476a16bf000080bf62ba683e0edc713ea63ec2bb2fbecd3d25fc303e32aa13bc3d64013f96e15c3fa0967cbfbc2714be5778983d000080bf12a30b3e533da13e186ce23ce52d373e0036ae3da381123ee1e8623f3672e13e587873bf0000000017389e3e000080bfe42eba3db08cc93e1972263d733c463e77dbf13cc4c6603e9365763ffc4e233e5b816cbf3d301c3e4cbdb33e000080bf44a38b3d5fb4dd3e01fb2c3c2332143eb7f00c3e0a5a863d673e3b3f72c32d3fd7b378bf312adebdc9d8573e000080bf84bae83d0265b53e454d7ebc733c463e13ab433da6b6abbd9365763faf1e843e042974bf97301cbef79e843e000080bfa6bae83d5fb4dd3e4d14cbb2cfcc4c3e7d3fd832000000000000803f00000000587873bf0000000011389e3e000080bf062fba3d0edcf13e6d1505bdcb362e3e53cccc3d135b26be75c4593f71ffff3ec25b74bffe1887bee61a0e3e000080bf23a30b3eb08cc93e3dba3ebdf4a8063e8cc0123e27026abe03522c3fa60d343f7f5274bf465298bec3d1cfbc000080bff3e8223e0265b53ecb6a62bd672eb73d86362e3ee4828dbef0f9e43e24c4593f877873bf00000000e8369ebe000080bfc32e3a3e533da13ea596b2bd6abe4d3d57fc303e1065e5be4fb96f3ec1e15c3f73e360bf8fe1823d056ff2be000080bf9274513ead158d3e183cc6bd2abecd3da0c0123efdecffbe3564013fc50d343fc52541bfb526143e85e223bf000080bf62ba683e533da13e3dba3ebdf4a8063e8cc0123e27026abe03522c3fa60d343fe57a49bfc451983e4f5a0abf000080bf9274513e0265b53e516209be7d6c623df8f00c3e27fc2ebf866f893ebac32d3ff32932bf41af263df78837bf000080bf1900803ead158d3e4d2db7bd1a32143e9c56d73d4f71e7be603e3b3f10b5023f2d7d29bf1d28de3d72d63dbf000080bf1800803e0265b53e6d1505bdcb362e3e53cccc3d135b26be75c4593f71ffff3e93cf30bf8118873e925e2cbf000080bf62ba683eb08cc93ee2af25be39c2c3b486c1f03d7f134fbf3d20913cf272163ffc7816bf00000000d11b4fbf000080bf00a38b3e0edc713ef4f00cbe7357d73d7ecccc3d332d30bf8796063fc4ffff3e3a7916bf00000000a51b4fbf000080bf01a38b3e533da13e873194bddc2d373e6556573dd4c6bfbed7e8623f7b558b3e887916bf000000006d1b4fbf000080bf00a38b3eb08cc93e454d7ebc733c463e13ab433da6b6abbd9365763faf1e843e738e1ebfb02f1c3e6a2845bf000080bf1900803e5fb4dd3e5dbd4dbd673c463e7d3fd83294eb8abe8865763f00000000fd830abf33311cbee9b753bf000080bfe845973e5fb4dd3e4d14cbb2cfcc4c3e7d3fd832000000000000803f00000000a07916bf00000000591b4fbf000080bf01a38b3e0edcf13ec756d7bda7362e3e7d3fd8323a9606bf4fc4593f00000000de98dabe991987be866b5dbf000080bfd0e8a23eb08cc93ebbb302be0432143ea156573ded1120bf4b3e3b3f9d558b3e832c00bffe2cdebddada5bbf000080bfe845973e0265b53e0d4e1abeb8a8063e7d3fd832dd513dbfcd512c3f0000000040a58abedb5298bef55e6abf000080bfb98bae3e0265b53efe322abed8bdcd3d38ab433dc9c852bf0e64013ff71e843ea55bc0bef72814be2a566abf000080bfd1e8a23e533da13eb42d37bef52db73d7d3fd8321bf964bf7cf9e43e000000000000000000000000000080bf000080bfa12eba3e533da13e5d7f30be216c623d6436ae3d61555bbf596f893ec172e13e3cfeeebee8b526bdc52862bf000080bfe845973ead158d3ec1ea43bedebd4d3dafdbf13cc18375bfb9b86f3e834f233ee82837be80e282bdf3567bbf000080bfb98bae3ead158d3ed4c642bed9c05332ae247d3d7c7873bf0000000031379e3e93279ebe0f8be3bc716073bf000080bfd0e8a23e0ddc713e5b4530be25be4dbdfe64b53db49f5ebfddb86fbeb48ede3e5260ddbef7e082bdcb4066bf000080bfe845973ec18c493e6d7226be07becdbddedb713d865b51bf256401bfece68c3e71b76fbe562714be791d76bf000080bfd0e8a23e743d213e9dabf9bdeba806bee164b53daf2919bf01522cbf7d8ede3ede5aa3bea75198be7d5b66bf000080bfe845973e30dcf13d45fd41be706c62bdd815053dbbb373bf916f89befee5163ee40711bed9b426bd82347dbf000080bfb88bae3ec08c493ecfcc4cbeb3f887327d3fd832b6f57fbf1c2491bc000000000000000000000000000080bf000080bfa02eba3e0edc713ec1ea43bedebd4d3d94dbf1bcc38375bfabb86f3e744f23bef928373eb4e3823def567bbf000080bf88d1c53ead158d3e2b6209be013214bee215053de3722abf4c3e3bbf02e6163ef545ccbd8429debd82347dbf000080bfb88bae3e2edcf13d5436aebdc6362ebe6b247d3df3c3d9be6dc459bfe8369e3ebde626be7b1887be7a6073bf000080bfd0e8a23e753da13d74362ebe6657d7bd7d3fd8321bc459bf8c9606bf000000000000000000000000000080bf000080bfa02eba3e743d213e45fd41be706c62bdcc1505bdbbb373bf916f89be02e616beee07113e8fb4263d82347dbf000080bf88d1c53ec18c493e7c2db7bdcf2d37be79813934a90cedbed1e862bf000000000000000000000000000080bf000080bfa02eba3e743da13d267226bd6f3c46be77dbf13cbdc660be936576bff74e233e8c2d46bd0c301cbe86b37cbf000080bfb98bae3e753d213d246209be093214bea21505bddc722abf533e3bbfe2e516be1446cc3d1229de3d82347dbf000080bf88d1c53e2edcf13d267226bd6f3c46be5ddbf1bcd7c660be8f6576bf194f23beb32d463d2e301c3e84b37cbf000080bf89d1c53e753d213d4d14cbb2cbcc4cbe7d3fd83200000000000080bf000000000000000000000000000080bf000080bfa12eba3e000000005436aebdc6362ebe59247dbde6c3d9be72c459bfe8369ebe8de6263e8618873e7a6073bf000080bf7074d13e753da13d9dabf9bdeba806bed864b5bdaf2919bf04522cbf768edebeaa5aa33ece51983e815b66bf000080bf5817dd3e30dcf13d6d7226be07becdbdcedb71bd835b51bf2d6401bfe7e68cbe5bb76f3e6827143e791d76bf000080bf7174d13e753d213edf3114be5d2eb7bd4756d7bd5a3e39bfc0f9e4befe9506bfdc78163f00000000e91b4fbf000080bf41bae83e753d213ed4c642bef910a6329c247dbd7c7873bf000000002f379ebe8e279e3e6391e33c6f6073bf000080bf7074d13e0edc713e5b4530be25be4dbdf564b5bdb19f5ebfdab86fbec38edebe5560dd3eb9e1823dca4066bf000080bf5917dd3ec28c493e5d7f30be816c623d3936aebd64555bbf7b6f893e9e72e1be35feee3ec6b8263dc52862bf000080bf5817dd3ead158d3eebaf25beb3f887326ac1f0bd85134fbfeb22913ce87216bff678163f00000000d71b4fbf000080bf40bae83e0edc713ee7ba0cbe5cbe4dbd839d0bbed5a02ebf01b96fbee95631bf2cc7383f34e382bd886c30bf000080bf285df43ec18c493efe322abed8bdcd3d2aab43bdc5c852bf1764013fe81e84beb05bc03e3d29143e27566abf000080bf7074d13e533da13e0d4e1abeb8a8063e7d3fd832dd513dbfcd512c3f0000000041a58a3edc52983ef45e6abf000080bf89d1c53e0265b53ebbb302be0432143e935657bdec1120bf4b3e3b3fa1558bbe852c003ff42cde3ddada5bbf000080bf5817dd3e0265b53ec756d7bda7362e3e7d3fd8323a9606bf4fc4593f00000000e098da3e9b19873e856b5dbf000080bf7074d13eb08cc93ef4f00cbe7357d73d75ccccbd2f2d30bf9196063fbdffffbe3679163f00000000a81b4fbf000080bf40bae83e533da13e536209bec16c623deef00cbe29fc2ebf996f893eb4c32dbfe329323f55b226bd058937bf000080bf285df43ead158d3e873194bddc2d373e535657bdd4c6bfbed7e8623f80558bbe8a79163f000000006a1b4fbf000080bf40bae83eb08cc93e5dbd4dbd673c463e7d3fd83294eb8abe8865763f00000000fd830a3f34311c3ee9b753bf000080bf5817dd3e5fb4dd3e4b2db7bd1932143e9556d7bd4f71e7be613e3b3f0fb502bf2d7d293f2428debd72d63dbf000080bf285df43e0265b53e454d7ebc733c463e06ab43bdaab6abbd9365763fb11e84be738e1e3fb32f1cbe6a2845bf000080bf295df43e5fb4dd3e4d14cbb2cfcc4c3e7d3fd832000000000000803f00000000a079163f00000000591b4fbf000080bf41bae83e0edcf13e6d1505bdcb362e3e4accccbd185b26be76c4593f6affffbe90cf303f7c1887be945e2cbf000080bf0800003fb08cc93e3dba3ebdf4a8063e8ac012be2e026abe07522c3fa30d34bfe37a493fbe5198be535a0abf000080bf7cd1053f0265b53e183cc6bd2abecd3d9ec012bef9ecffbe3964013fc30d34bfbf25413fdc2614be87e223bf000080bf0800003f533da13ecb6a62bd672eb73d84362ebee4828dbee9f9e43e25c459bf8778733f00000000e8369ebe000080bff0a20b3f533da13ecec1f0bdb8c05332c6af25be2b7916bf00000000af1b4fbf39074f3f1a90e3bc4e6a16bf000080bf0800003f0ddc713ea596b2bd6abe4d3d54fc30be1065e5be49b96f3ec1e15cbf6ee3603f53e282bd0e6ff2be000080bf7cd1053fad158d3ef82db7bdcb6c62bd79362ebee85fdebead6f89bec91d5cbf8a9b653f4eb526bd2b75e1be000080bf7cd1053fc08c493ea2257dbdb0f88732bec642be2a319ebe252391bca66e73bf6e78733f0000000087379ebe000080bff0a20b3f0edc713efc4dfebc4fbe4d3da1ab43be0a2714be05b96f3e621d76bf2b307d3f4fe2823d917908be000080bf6474113fad158d3e0fe2d9bd25becdbd5d9d0bbe08b303bf3d6401bfc65631bf9c8c573fe12714be1e0d05bf000080bf0800003f743d213e9dabf9bdeba806bed864b5bdaf2919bf04522cbf768edebe92d7413ff35198be87dd14bf000080bf285df43e30dcf13ddc3194bd153214be1dc1f0bde619b1be663e3bbfab7216bfd6eb683f6829debda60fcdbe000080bf7cd1053f2edcf13d5436aebdc6362ebe59247dbde6c3d9be72c459bfe8369ebe10925a3f911887beb9c8e5be000080bf0800003f753da13d9d5757bd9457d7bd82af25bec69686bea29606bf751b4fbf5478733f0000000025389ebe000080bff0a20b3f743d213ef36ce2bcc16c62bdabc642be7cb81dbea46f89be936e73bf3a047c3f7ab5263d320c2fbe000080bf6474113fc18c493efd6be2bcd72d37be2736aebd9d8112bed7e862bf5d72e1be5878733f0000000015389ebe000080bff0a20b3f753da13d267226bd6f3c46be5ddbf1bcd7c660be8f6576bf194f23be50816c3f28301cbe89bdb3be000080bf7cd1053f753d213dcefa2cbc0c3214bec7f00cbed05986bd5e3e3bbf7cc32dbfe0b3783f8729de3d37d857be000080bf6474113f30dcf13d134d7e3c6f3c46be06ab43bd9fb6ab3d936576bfb61e84be0f29743f77301c3eb49e84be000080bf6474113f753d213d4d14cbb2cbcc4cbe7d3fd83200000000000080bf000000005878733f000000000f389ebe000080bff0a20b3f000000006115053dc9362ebe47ccccbd395b263e75c459bf6cffffbed95b743fb318873e81190ebe000080bfd845173f753da13d30ba3e3df1a806be8ac012be5a026a3e0f522cbf960d34bf8e52743feb51983e56d9cf3c000080bf4c171d3f30dcf13d413ec23b2bbecdbd24fc30bef7ab133c396401bf99e15cbfa4967c3f9327143edb7798bd000080bfd845173f753d213ebd6a623d662eb7bd84362ebee4828d3eebf9e4be24c459bf8978733f00000000e5369e3e000080bfc0e8223f753d213e4d14cbb20411a632cbcc4cbe0000000000000000000080bfb6e67f3f8a8fe33c00000000000080bfd845173f0edc713ee24dfe3c47be4dbda1ab43bef826143e14b96fbe621d76bf2d307d3f52e2823d7d79083e000080bf4c171d3fc28c493e9d6ce23caf6c623dadc642be75b81d3ea36f893e936e73bf3c047c3ff1b4263d230c2f3e000080bf4c171d3fad158d3e6b257d3dc44eb1b3c2c642be23319e3ee122913ca66e73bf7078733f000000007f379e3e000080bfc0e8223f0edc713e9d96b23d65be4dbd54fc30be0365e53e42b96fbec4e15cbf75e3603f0be282bdff6ef23e000080bf34ba283fc18c493ea63ec2bb2fbecd3d24fc30bef2aa13bc3d64013f96e15cbfa0967c3fc927143e4978983d000080bfd845173f533da13e3dba3ebdf4a8063e8ac012be2e026abe07522c3fa30d34bf7f52743f4652983eded1cfbc000080bf6474113f0265b53e01fb2c3c2332143eb5f00cbefd59863d6a3e3b3f6fc32dbfd7b3783f342ade3dc8d8573e000080bf4c171d3f0265b53e6d1505bdcb362e3e4accccbd185b26be76c4593f6affffbec25b743f0019873ee61a0e3e000080bfd845173fb08cc93e8f57573d9957d73d82af25bec496863ea096063f771b4fbf5678733f000000001e389e3e000080bfc0e8223f533da13ee22db73db86c623d7d362ebed85fde3ea46f893ecf1d5cbf8f9b653f3eb426bd2275e13e000080bf34ba283fad158d3e156ce23ce52d373ef735aebda281123ee2e8623f3472e1be5878733f0000000017389e3e000080bfc0e8223fb08cc93e454d7ebc733c463e06ab43bdaab6abbd9365763fb11e84be0429743f99301c3ef59e843e000080bf4c171d3f5fb4dd3edb31943d2232143e07c1f0bded19b13e683e3b3fa77216bfe0eb683f852adebd690fcd3e000080bf34ba283f0265b53e1972263d733c463e5ddbf1bcc6c6603e9365763ffe4e23be5b816c3f3e301cbe4cbdb33e000080bf34ba283f5fb4dd3e4d14cbb2cfcc4c3e7d3fd832000000000000803f000000005878733f0000000011389e3e000080bfc0e8223f0edcf13e4d36ae3dca362e3e59247dbdf5c3d93e6fc4593fe1369ebe26925a3fe91887be36c8e53e000080bfa88b2e3fb08cc93e97abf93defa8063ed864b5bdb429193ffe512c3f738edebe9cd7413f3b5298be69dd143f000080bf1c5d343f0265b53e07e2d93d2abecd3d5c9d0bbe07b3033f3764013fcc5631bf9f8c573ffe2714be170d053f000080bfa88b2e3f533da13edb31143e5e2eb73d4756d7bd593e393fbdf9e43efe9506bfe078163f00000000e51b4f3f000080bf902e3a3f533da13ec6c1f03db8c05332c6af25be2379163f00000000b51b4fbf3f074f3f3f8ee3bc466a163f000080bfa88b2e3f0ddc713ee5ba0c3e65be4d3d839d0bbecda02e3f20b96f3eeb5631bf2fc7383f19e382bd836c303f000080bf1c5d343fad158d3e3a62093eb36c62bd02f10cbe17fc2e3f9d6f89bec4c32dbff229323fd2b226bdf488373f000080bf1c5d343fc08c493edcaf253eaaf887328ac1f0bd80134f3f442391bcef7216bffb78163f00000000d11b4f3f000080bf902e3a3f0edc713e5745303e2abe4d3df564b5bdb49f5e3fc3b86f3ec18edebe5460dd3ea6e1823dca40663f000080bf0400403fad158d3e103cc63d25becdbd9ec012bef1ecff3e416401bfc10d34bfc325413fbc2614be86e2233f000080bfa88b2e3f743d213e30ba3e3df1a806be8ac012be5a026a3e0f522cbf960d34bff07a493f835198be525a0a3f000080bf34ba283f30dcf13d6b2db73d143214be7956d7bd6271e73e643e3bbf02b502bf2e7d293f6627debd74d63d3f000080bf1c5d343f2edcf13d6115053dc9362ebe47ccccbd395b263e75c459bf6cffffbea9cf303f531887be825e2c3f000080bfa88b2e3f753da13df1f00c3e6f57d7bd75ccccbd312d303f8f9606bfc3ffffbe3679163f00000000a81b4f3f000080bf902e3a3f743d213e4b7f303e816c62bd6e36aebd5a555b3f716f89becd72e1be5dfeee3e16b8263dba28623f000080bf0400403fc18c493e9831943dd42d37be3d5657bde8c6bf3ed4e862bf7c558bbe8479163f000000006f1b4f3f000080bf902e3a3f753da13d134d7e3c6f3c46be06ab43bd9fb6ab3d936576bfb61e84be7b8e1e3fb52f1cbe6228453f000080bf1c5d343f753d213dc7b3023ef93114be4c5657bdf911203f473e3bbf7f558bbe6c2c003f172dde3de7da5b3f000080bf0400403f30dcf13d4fbd4d3d653c46be7d3fd83299eb8a3e886576bf00000000f0830a3f2e311c3ef1b7533f000080bf0400403f753d213d4d14cbb2cbcc4cbe7d3fd83200000000000080bf00000000a079163f00000000591b4f3f000080bf902e3a3f00000000be56d73da4362ebe7d3fd8323696063f50c459bf00000000ba98da3e7b19873e946b5d3f000080bf78d1453f753da13d0a4e1a3eb4a806be7d3fd832dd513d3fcd512cbf0000000029a58a3ec052983efc5e6a3f000080bfeca24b3f30dcf13dfb322a3ed3bdcdbd2bab43bdcdc8523f0a6401bfee1e84bea45bc03e1f29143e29566a3f000080bf78d1453f753d213eb02d373ef42db7bd7d3fd8321bf9643f81f9e4be0000000000000000000000000000803f000080bf6074513f753d213ed0c6423ef910a6329c247dbd7a78733f000000003e379ebe9c279e3ec792e33c6d60733f000080bf78d1453f0edc713ebdea433ed9bd4dbd94dbf1bcc183753fa3b86fbea54f23be2c29373eb7e3823ded567b3f000080bfeca24b3fc28c493e41fd413e6f6c623dd01505bdbdb3733f8e6f893ef4e516beca07113ec0b5263d82347d3f000080bfeca24b3fad158d3ecbcc4c3ee1d11634f303d133b6f57f3f3e25913c0000000000000000000000000000803f000080bf6074513f0edc713ebdea433ed9bd4dbdafdbf13cc183753fadb86fbe9a4f233e1c2937be8de382bded567b3f000080bfd445573fc18c493e6a72263e0bbecd3dcedb71bd855b513f2c64013fe2e68cbe3db76f3e7f27143e7a1d763f000080bf78d1453f533da13e97abf93defa8063ed864b5bdb429193ffe512c3f738edebe885aa33eeb51983e825b663f000080bf0400403f0265b53e1a62093e0f32143eb01505bddc722a3f533e3b3fd8e516be2e45cc3dce29de3d84347d3f000080bfeca24b3f0265b53e4d36ae3dca362e3e59247dbdf5c3d93e6fc4593fe1369ebec1e5263eb218873e7c60733f000080bf78d1453fb08cc93e70362e3e6b57d73d7d3fd83219c4593f9096063f0000000000000000000000000000803f000080bf6074513f533da13e3cfd413e936c623dea15053db9b3733f996f893e05e6163ee90711be21b526bd82347d3f000080bfd445573fad158d3e582db73ddb2d373e7d3fd8329f0ced3ed3e8623f0000000000000000000000000000803f000080bf6074513fb08cc93e1972263d733c463e5ddbf1bcc6c6603e9365763ffe4e23be372c463d2a301c3e86b37c3f000080bfeca24b3f5fb4dd3e1a62093e0f32143ebc15053ddc722a3f553e3b3fd5e5163e2745ccbdc629debd84347d3f000080bfd445573f0265b53e1972263d733c463e77dbf13cc4c6603e9365763ffc4e233e322c46bd26301cbe86b37c3f000080bfd445573f5fb4dd3e4d14cbb2cfcc4c3e7d3fd832000000000000803f0000000000000000000000000000803f000080bf6074513f0edcf13e4d36ae3dca362e3e6b247d3df5c3d93e6fc4593fe1369e3ec2e526beb21887be7c60733f000080bf48175d3fb08cc93e97abf93defa8063ee164b53db429193ffe512c3f758ede3e8a5aa3beeb5198be825b663f000080bfbce8623f0265b53e6a72263e0bbecd3ddedb713d835b513f2e64013fe4e68c3e31b76fbe982714be7a1d763f000080bf48175d3f533da13edb31143e5e2eb73d4f56d73d593e393fb6f9e43e0396063f4ec2ffbe25c53ebe4995583f000080bf30ba683f533da13e5745303e2abe4d3dfe64b53db29f5e3fbdb86f3ec68ede3e5160ddbe26e282bdca40663f000080bfbce8623fad158d3ee4ba0c3e61be4d3d859d0b3ecea02e3f1ab96f3eec56313f164535bfab46ccbcdca7343f000080bfa48b6e3fad158d3ed0c6423ed9c05332ae247d3d7a78733f000000003d379e3e9c279ebe8293e3bc6b60733f000080bf48175d3f0ddc713edcaf253ebbf887328ec1f03d7d134f3fd12291bcf172163ffc7816bf00000000d01b4f3f000080bf30ba683f0edc713ec6c1f03d0a11a632c9af253e2679163f00000000b21b4f3f3c074fbf388fe33c496a163f000080bf185d743f0edc713e4d7f303e816c62bd7836ae3d5a555b3f716f89becd72e13e5ffeeebe69b826bdba28623f000080bfbce8623fc08c493e3b62093eb36c62bd04f10c3e15fc2e3f9c6f89bec7c32d3ff62932bf81b2263df188373f000080bfa48b6e3fc18c493e9d96b23d65be4dbd57fc303e0765e53e54b96fbec3e15c3feb0f5cbfd5fa1b3e39b4f93e000080bf8c2e7a3fc28c493efb322a3ed3bdcdbd38ab433dcbc8523f0b6401bfe71e843e995bc0be112914be2c566a3f000080bf48175d3f743d213e0a4e1a3eb4a806be7d3fd832dd513d3fcd512cbf000000000ba58abea25298be065f6a3f000080bfd445573f30dcf13df1f00c3e6f57d7bd7dcccc3d312d303f8d9606bfc4ffff3e377916bf00000000a81b4f3f000080bf30ba683f743d213e103cc63d25becdbda0c0123ef1ecff3e396401bfc70d343fcc2541bf9e26143e7de2233f000080bf185d743f753d213ebd6a623d662eb7bd86362e3ee5828d3ef2f9e4be24c4593f379f5cbf49838d3e10c4d93e000080bf0000803f753d213e30ba3e3df1a806be8cc0123e1b026a3e0c522cbf9e0d343f0f7b49bf5a51983e305a0a3f000080bf8c2e7a3f30dcf13dc5b3023ef63114be8b56573df611203f483e3bbf8d558b3e5d2c00bf3f2cdebdf3da5b3f000080bfbce8623f2edcf13dbe56d73da4362ebe7d3fd8323696063f50c459bf000000006498dabe471987beb26b5d3f000080bf48175d3f753da13d692db73d063214bea756d73d6471e73e573e3bbf13b5023f437d29bf2c27de3d61d63d3f000080bfa48b6e3f30dcf13d6115053dc9362ebe53cccc3d0e5b263e73c459bf73ffff3ed9cf30bf2c18873e5c5e2c3f000080bf185d743f753da13d9b31943dcd2d37beaf56573df4c6bf3ecce862bf9c558b3e847916bf000000006f1b4f3f000080bf30ba683f753da13d4fbd4d3d653c46be7d3fd83299eb8a3e886576bf00000000e0830abf1a311cbefeb7533f000080bfbce8623f753d213d134d7e3c6f3c46be10ab433da2b6ab3d936576bfb91e843e8c8e1ebfa12f1c3e5528453f000080bfa48b6e3f753d213d4d14cbb2cbcc4cbe7d3fd83200000000000080bf00000000a07916bf00000000591b4f3f000080bf30ba683f00000000 - m_CompressedMesh: - m_Vertices: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_UV: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Normals: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Tangents: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Weights: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_NormalSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_TangentSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_FloatColors: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_BoneIndices: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_Triangles: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_UVInfo: 0 - m_LocalAABB: - m_Center: {x: -0.000000029802322, y: 0.000000029802322, z: 0.000000007450581} - m_Extent: {x: 0.2, y: 0.2, z: 0.19999999} - m_MeshUsageFlags: 0 - m_BakedConvexCollisionMesh: - m_BakedTriangleCollisionMesh: - m_MeshMetrics[0]: 1.8829471 - m_MeshMetrics[1]: 1 - m_MeshOptimizationFlags: 1 - m_StreamData: - serializedVersion: 2 - offset: 0 - size: 0 - path: ---- !u!1 &535679136 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 535679137} - - component: {fileID: 535679138} - m_Layer: 0 - m_Name: TransformerEnabled - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &535679137 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 535679136} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1507460097} - m_Father: {fileID: 1192304054} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &535679138 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 535679136} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: TransformerEnabled - tags: [] ---- !u!21 &539108941 -Material: - serializedVersion: 8 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Standard - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ValidKeywords: - - _ALPHAPREMULTIPLY_ON - m_InvalidKeywords: [] - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3000 - stringTagMap: - RenderType: Transparent - 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_Ints: [] - m_Floats: - - _BumpScale: 1 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DstBlend: 10 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 3 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _UVSec: 0 - - _ZWrite: 0 - m_Colors: - - _Color: {r: 0.4, g: 0.5882353, b: 1, a: 0.19607843} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - m_BuildTextureStacks: [] ---- !u!1001 &561255719 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 248065651} - m_Modifications: - - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - propertyPath: m_RootOrder - value: 2 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -7511558181221131132, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 1862d8e21d2bba649b255c6a7eb4eb61, type: 2} - - target: {fileID: 919132149155446097, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - propertyPath: m_Name - value: MagicSphere - objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} ---- !u!4 &561255720 stripped -Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - m_PrefabInstance: {fileID: 561255719} - m_PrefabAsset: {fileID: 0} ---- !u!1 &561255721 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - m_PrefabInstance: {fileID: 561255719} - m_PrefabAsset: {fileID: 0} ---- !u!135 &561255722 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 561255721} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.2 - m_Center: {x: -0.000000029802322, y: 0.000000029802322, z: 0.000000007450581} ---- !u!114 &561255723 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 561255721} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: Sphere - tags: [] ---- !u!1 &576643108 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 576643109} - - component: {fileID: 576643110} - m_Layer: 0 - m_Name: Collider (2) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &576643109 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 576643108} - m_LocalRotation: {x: -0.27059805, y: -0.27059805, z: 0.6532815, w: 0.6532815} - m_LocalPosition: {x: -0.1617, y: 0, z: 0.17999974} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 660021081} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: -45, z: 90} ---- !u!136 &576643110 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 576643108} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - m_Radius: 0.02 - m_Height: 0.2 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} ---- !u!1001 &586564669 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 813701130} - m_Modifications: - - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - propertyPath: m_RootOrder - value: 3 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - propertyPath: m_Name - value: Podium Teleportation Area - objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - propertyPath: m_Layer - value: 8 - objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: - - {fileID: -7511558181221131132, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - m_SourcePrefab: {fileID: 100100000, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} ---- !u!4 &586564670 stripped -Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - m_PrefabInstance: {fileID: 586564669} - m_PrefabAsset: {fileID: 0} ---- !u!1 &586564671 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} - m_PrefabInstance: {fileID: 586564669} - m_PrefabAsset: {fileID: 0} ---- !u!114 &586564672 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 586564671} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: Podium Teleportation Area - tags: [] ---- !u!64 &586564674 -MeshCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 586564671} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 4 - m_Convex: 0 - m_CookingOptions: 30 - m_Mesh: {fileID: -3071651571934779511, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} ---- !u!114 &586564675 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 586564671} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: db00376f7b7d66e4da00d63492cb7971, type: 3} - m_Name: - m_EditorClassIdentifier: - m_InteractionManager: {fileID: 0} - m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_InteractionLayers: - m_Bits: 256 - m_DistanceCalculationMode: 1 - m_SelectMode: 1 - m_FocusMode: 1 - m_CustomReticle: {fileID: 3819676577015031517, guid: c9ea54082e6151843acb776fb52ed6f7, type: 3} - m_AllowGazeInteraction: 0 - m_AllowGazeSelect: 0 - m_OverrideGazeTimeToSelect: 0 - m_GazeTimeToSelect: 0.5 - m_OverrideTimeToAutoDeselectGaze: 0 - m_TimeToAutoDeselectGaze: 3 - m_AllowGazeAssistance: 0 - m_FirstHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_LastHoverExited: - m_PersistentCalls: - m_Calls: [] - m_HoverEntered: - m_PersistentCalls: - m_Calls: [] - m_HoverExited: - m_PersistentCalls: - m_Calls: [] - m_FirstSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_LastSelectExited: - m_PersistentCalls: - m_Calls: [] - m_SelectEntered: - m_PersistentCalls: - m_Calls: [] - m_SelectExited: - m_PersistentCalls: - m_Calls: [] - m_FirstFocusEntered: - m_PersistentCalls: - m_Calls: [] - m_LastFocusExited: - m_PersistentCalls: - m_Calls: [] - m_FocusEntered: - m_PersistentCalls: - m_Calls: [] - m_FocusExited: - m_PersistentCalls: - m_Calls: [] - m_Activated: - m_PersistentCalls: - m_Calls: [] - m_Deactivated: - m_PersistentCalls: - m_Calls: [] - m_StartingHoverFilters: [] - m_StartingSelectFilters: [] - m_StartingInteractionStrengthFilters: [] - m_OnFirstHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_OnLastHoverExited: - m_PersistentCalls: - m_Calls: [] - m_OnHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_OnHoverExited: - m_PersistentCalls: - m_Calls: [] - m_OnSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_OnSelectExited: - m_PersistentCalls: - m_Calls: [] - m_OnSelectCanceled: - m_PersistentCalls: - m_Calls: [] - m_OnActivate: - m_PersistentCalls: - m_Calls: [] - m_OnDeactivate: - m_PersistentCalls: - m_Calls: [] - m_TeleportationProvider: {fileID: 0} - m_MatchOrientation: 0 - m_MatchDirectionalInput: 0 - m_TeleportTrigger: 3 - m_FilterSelectionByHitNormal: 0 - m_UpNormalToleranceDegrees: 30 - m_Teleporting: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &587381658 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 587381659} - - component: {fileID: 587381667} - - component: {fileID: 587381666} - - component: {fileID: 587381668} - - component: {fileID: 587381664} - - component: {fileID: 587381663} - - component: {fileID: 587381662} - - component: {fileID: 587381661} - - component: {fileID: 587381660} - - component: {fileID: 587381665} - m_Layer: 0 - m_Name: Sliced Cube (1) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &587381659 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 587381658} - m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} - m_LocalPosition: {x: -0.01, y: 1.2, z: 0.75} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1756511964} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} ---- !u!114 &587381660 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 587381658} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 10f84f2b8a43cb84abcf29d7e444d45d, type: 3} - m_Name: - m_EditorClassIdentifier: - lockOnParentObjectLock: 1 - attachedToSnapZone: - m_PersistentCalls: - m_Calls: [] - detachedFromSnapZone: - m_PersistentCalls: - m_Calls: [] - lockObjectOnSnap: 0 ---- !u!114 &587381661 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 587381658} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 428efa2c1665b6745bfa9c1ec2026c93, type: 3} - m_Name: - m_EditorClassIdentifier: - lockOnParentObjectLock: 1 - grabStarted: - m_PersistentCalls: - m_Calls: [] - grabEnded: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &587381662 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 587381658} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 573907d717ac4934eb429f2f5978a132, type: 3} - m_Name: - m_EditorClassIdentifier: - lockOnParentObjectLock: 1 - touchStarted: - m_PersistentCalls: - m_Calls: [] - touchEnded: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &587381663 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 587381658} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d1bcb89c5e4474247b7923fe1388ad1a, type: 3} - m_Name: - m_EditorClassIdentifier: - m_InteractionManager: {fileID: 0} - m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_InteractionLayers: - m_Bits: 1 - m_DistanceCalculationMode: 1 - m_SelectMode: 0 - m_FocusMode: 1 - m_CustomReticle: {fileID: 0} - m_AllowGazeInteraction: 0 - m_AllowGazeSelect: 0 - m_OverrideGazeTimeToSelect: 0 - m_GazeTimeToSelect: 0.5 - m_OverrideTimeToAutoDeselectGaze: 0 - m_TimeToAutoDeselectGaze: 3 - m_AllowGazeAssistance: 0 - m_FirstHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_LastHoverExited: - m_PersistentCalls: - m_Calls: [] - m_HoverEntered: - m_PersistentCalls: - m_Calls: [] - m_HoverExited: - m_PersistentCalls: - m_Calls: [] - m_FirstSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_LastSelectExited: - m_PersistentCalls: - m_Calls: [] - m_SelectEntered: - m_PersistentCalls: - m_Calls: [] - m_SelectExited: - m_PersistentCalls: - m_Calls: [] - m_FirstFocusEntered: - m_PersistentCalls: - m_Calls: [] - m_LastFocusExited: - m_PersistentCalls: - m_Calls: [] - m_FocusEntered: - m_PersistentCalls: - m_Calls: [] - m_FocusExited: - m_PersistentCalls: - m_Calls: [] - m_Activated: - m_PersistentCalls: - m_Calls: [] - m_Deactivated: - m_PersistentCalls: - m_Calls: [] - m_StartingHoverFilters: [] - m_StartingSelectFilters: [] - m_StartingInteractionStrengthFilters: [] - m_OnFirstHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_OnLastHoverExited: - m_PersistentCalls: - m_Calls: [] - m_OnHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_OnHoverExited: - m_PersistentCalls: - m_Calls: [] - m_OnSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_OnSelectExited: - m_PersistentCalls: - m_Calls: [] - m_OnSelectCanceled: - m_PersistentCalls: - m_Calls: [] - m_OnActivate: - m_PersistentCalls: - m_Calls: [] - m_OnDeactivate: - m_PersistentCalls: - m_Calls: [] - m_AttachTransform: {fileID: 0} - m_SecondaryAttachTransform: {fileID: 0} - m_UseDynamicAttach: 0 - m_MatchAttachPosition: 1 - m_MatchAttachRotation: 1 - m_SnapToColliderVolume: 1 - m_ReinitializeDynamicAttachEverySingleGrab: 1 - m_AttachEaseInTime: 0.15 - m_MovementType: 1 - m_VelocityDamping: 1 - m_VelocityScale: 1 - m_AngularVelocityDamping: 1 - m_AngularVelocityScale: 1 - m_TrackPosition: 1 - m_SmoothPosition: 0 - m_SmoothPositionAmount: 5 - m_TightenPosition: 0.5 - m_TrackRotation: 1 - m_SmoothRotation: 0 - m_SmoothRotationAmount: 5 - m_TightenRotation: 0.5 - m_TrackScale: 1 - m_SmoothScale: 0 - m_SmoothScaleAmount: 8 - m_TightenScale: 0.1 - m_ThrowOnDetach: 1 - m_ThrowSmoothingDuration: 0.25 - m_ThrowSmoothingCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - m_ThrowVelocityScale: 1.5 - m_ThrowAngularVelocityScale: 1 - m_ForceGravityOnDetach: 0 - m_RetainTransformParent: 1 - m_AttachPointCompatibilityMode: 0 - m_StartingSingleGrabTransformers: [] - m_StartingMultipleGrabTransformers: [] - m_AddDefaultGrabTransformers: 1 - isTouchable: 1 - isGrabbable: 1 - isUsable: 0 ---- !u!54 &587381664 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 587381658} - serializedVersion: 2 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 - m_UseGravity: 1 - m_IsKinematic: 1 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 ---- !u!65 &587381665 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 587381658} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 0.40000013, y: 0.39999995, z: 0.20000006} - m_Center: {x: 0.00000047683716, y: 0, z: -0.10000003} ---- !u!23 &587381666 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 587381658} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 1862d8e21d2bba649b255c6a7eb4eb61, type: 2} - - {fileID: 2100000, guid: a2e88723e4cd77a4690d0637321940aa, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &587381667 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 587381658} - m_Mesh: {fileID: 8989072162018436745, guid: 3cd7c532cc585b54795fadfe1b32fc53, type: 3} ---- !u!114 &587381668 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 587381658} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: Sliced Cube (1) - tags: [] ---- !u!1 &597715542 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 597715543} - - component: {fileID: 597715544} - - component: {fileID: 597715548} - - component: {fileID: 597715547} - - component: {fileID: 597715546} - - component: {fileID: 597715545} - m_Layer: 0 - m_Name: Magic Cube_SnapZone - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &597715543 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 597715542} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 1.2, z: 0.75} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1106929324} - m_Father: {fileID: 1527860102} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &597715544 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 597715542} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc6efdd45e6a00744aaf4c68264d6d7c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_InteractionManager: {fileID: 0} - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_InteractionLayers: - m_Bits: 1 - m_AttachTransform: {fileID: 1106929324} - m_KeepSelectedTargetValid: 1 - m_DisableVisualsWhenBlockedInGroup: 1 - m_StartingSelectedInteractable: {fileID: 0} - m_StartingTargetFilter: {fileID: 0} - m_HoverEntered: - m_PersistentCalls: - m_Calls: [] - m_HoverExited: - m_PersistentCalls: - m_Calls: [] - m_SelectEntered: - m_PersistentCalls: - m_Calls: [] - m_SelectExited: - m_PersistentCalls: - m_Calls: [] - m_StartingHoverFilters: [] - m_StartingSelectFilters: [] - m_OnHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_OnHoverExited: - m_PersistentCalls: - m_Calls: [] - m_OnSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_OnSelectExited: - m_PersistentCalls: - m_Calls: [] - m_ShowInteractableHoverMeshes: 1 - m_InteractableHoverMeshMaterial: {fileID: 0} - m_InteractableCantHoverMeshMaterial: {fileID: 0} - m_SocketActive: 1 - m_InteractableHoverScale: 1 - m_RecycleDelayTime: 1 - m_HoverSocketSnapping: 0 - m_SocketSnappingRadius: 0.1 - m_SocketScaleMode: 0 - m_FixedScale: {x: 1, y: 1, z: 1} - m_TargetBoundsSize: {x: 1, y: 1, z: 1} - shownHighlightObject: {fileID: 919132149155446097, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} - ShowHighlightInEditor: 1 - highlightMeshMaterial: {fileID: 2100000, guid: 34211d2175b5963469d4deb504fbcbaf, type: 2} - validationMaterial: {fileID: 2100000, guid: c6c888b079480654fbf337e7fe50b405, type: 2} - invalidMaterial: {fileID: 2100000, guid: 69e2b61a70de44f48909a564a7cf9c62, type: 2} - previewMesh: {fileID: 524671518} ---- !u!65 &597715545 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 597715542} - m_Material: {fileID: 0} - m_IsTrigger: 1 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 0.4, y: 0.4, z: 0.4} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &597715546 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 597715542} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 557aaed036734781b129d67ec56c9366, type: 3} - m_Name: - m_EditorClassIdentifier: - acceptedProcessSceneObjects: - - {fileID: 248065658} ---- !u!114 &597715547 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 597715542} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: eb7be990fff0a2142a874601356b26df, type: 3} - m_Name: - m_EditorClassIdentifier: - lockOnParentObjectLock: 1 - objectAttached: - m_PersistentCalls: - m_Calls: [] - objectDetached: - m_PersistentCalls: - m_Calls: [] - lockOnUnsnap: 1 ---- !u!114 &597715548 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 597715542} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: Magic Cube_SnapZone - tags: [] ---- !u!1001 &632093759 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1527860102} - m_Modifications: - - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - propertyPath: m_RootOrder - value: 4 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - propertyPath: m_LocalPosition.x - value: -0.75 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -7511558181221131132, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 3b8d4fff00195aa4792d649902e68bcd, type: 2} - - target: {fileID: -7511558181221131132, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - propertyPath: m_Materials.Array.data[1] - value: - objectReference: {fileID: 2100000, guid: 525bac3f393fa1349a1508822fb6abb0, type: 2} - - target: {fileID: 919132149155446097, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - propertyPath: m_Name - value: Pedestal - objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - propertyPath: m_StaticEditorFlags - value: 4294967295 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} ---- !u!4 &632093760 stripped -Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - m_PrefabInstance: {fileID: 632093759} - m_PrefabAsset: {fileID: 0} ---- !u!1 &632093761 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} - m_PrefabInstance: {fileID: 632093759} - m_PrefabAsset: {fileID: 0} ---- !u!65 &632093762 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 632093761} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 0.5000001, y: 1, z: 0.5000001} - m_Center: {x: -0.00000023841858, y: 0.5, z: 0} ---- !u!1 &637860736 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 637860737} - - component: {fileID: 637860741} - - component: {fileID: 637860740} - - component: {fileID: 637860739} - - component: {fileID: 637860738} - m_Layer: 0 - m_Name: Left UI Controller - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &637860737 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 637860736} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1316947019} - m_Father: {fileID: 1401794268} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &637860738 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 637860736} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} - m_Name: - m_EditorClassIdentifier: - m_LineWidth: 0.02 - m_OverrideInteractorLineLength: 1 - m_LineLength: 10 - m_AutoAdjustLineLength: 0 - m_MinLineLength: 0.5 - m_UseDistanceToHitAsMaxLineLength: 1 - m_LineRetractionDelay: 0.5 - m_LineLengthChangeSpeed: 12 - m_WidthCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - m_SetLineColorGradient: 1 - m_ValidColorGradient: - serializedVersion: 2 - key0: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 0} - key1: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 1} - key2: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 1} - key3: {r: 0, g: 0, b: 0, a: 1} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 32768 - ctime2: 65535 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 32768 - atime2: 65535 - atime3: 65535 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_NumColorKeys: 3 - m_NumAlphaKeys: 3 - m_InvalidColorGradient: - serializedVersion: 2 - key0: {r: 1, g: 0.39215687, b: 0.18431373, a: 0} - key1: {r: 1, g: 0.39215687, b: 0.18431373, a: 1} - key2: {r: 1, g: 0.39215687, b: 0.18431373, a: 1} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 32768 - ctime2: 65535 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 32768 - atime2: 65535 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_NumColorKeys: 3 - m_NumAlphaKeys: 3 - m_BlockedColorGradient: - serializedVersion: 2 - key0: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} - key1: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - m_TreatSelectionAsValidState: 0 - m_SmoothMovement: 0 - m_FollowTightness: 10 - m_SnapThresholdDistance: 10 - m_Reticle: {fileID: 0} - m_BlockedReticle: {fileID: 0} - m_StopLineAtFirstRaycastHit: 1 - m_StopLineAtSelection: 0 - m_SnapEndpointIfAvailable: 1 - m_LineBendRatio: 0.5 - m_OverrideInteractorLineOrigin: 1 - m_LineOriginTransform: {fileID: 0} - m_LineOriginOffset: 0 ---- !u!120 &637860739 -LineRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 637860736} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 0 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 5 - m_Positions: [] - m_Parameters: - serializedVersion: 3 - widthMultiplier: 0.02 - widthCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - colorGradient: - serializedVersion: 2 - key0: {r: 0, g: 0, b: 1, a: 1} - key1: {r: 0, g: 0, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - numCornerVertices: 4 - numCapVertices: 4 - alignment: 0 - textureMode: 0 - shadowBias: 0.5 - generateLightingData: 0 - m_UseWorldSpace: 1 - m_Loop: 0 ---- !u!114 &637860740 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 637860736} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 203357f2f04686b4c860a9361fd12c36, type: 3} - m_Name: - m_EditorClassIdentifier: - m_InteractionManager: {fileID: 0} - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 32 - m_InteractionLayers: - m_Bits: 32 - m_AttachTransform: {fileID: 1316947019} - m_KeepSelectedTargetValid: 1 - m_DisableVisualsWhenBlockedInGroup: 1 - m_StartingSelectedInteractable: {fileID: 0} - m_StartingTargetFilter: {fileID: 0} - m_HoverEntered: - m_PersistentCalls: - m_Calls: [] - m_HoverExited: - m_PersistentCalls: - m_Calls: [] - m_SelectEntered: - m_PersistentCalls: - m_Calls: [] - m_SelectExited: - m_PersistentCalls: - m_Calls: [] - m_StartingHoverFilters: [] - m_StartingSelectFilters: [] - m_OnHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_OnHoverExited: - m_PersistentCalls: - m_Calls: [] - m_OnSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_OnSelectExited: - m_PersistentCalls: - m_Calls: [] - m_SelectActionTrigger: 1 - m_HideControllerOnSelect: 0 - m_AllowHoveredActivate: 0 - m_TargetPriorityMode: 0 - m_PlayAudioClipOnSelectEntered: 0 - m_AudioClipForOnSelectEntered: {fileID: 0} - m_PlayAudioClipOnSelectExited: 0 - m_AudioClipForOnSelectExited: {fileID: 0} - m_PlayAudioClipOnSelectCanceled: 0 - m_AudioClipForOnSelectCanceled: {fileID: 0} - m_PlayAudioClipOnHoverEntered: 0 - m_AudioClipForOnHoverEntered: {fileID: 0} - m_PlayAudioClipOnHoverExited: 0 - m_AudioClipForOnHoverExited: {fileID: 0} - m_PlayAudioClipOnHoverCanceled: 0 - m_AudioClipForOnHoverCanceled: {fileID: 0} - m_AllowHoverAudioWhileSelecting: 1 - m_PlayHapticsOnSelectEntered: 0 - m_HapticSelectEnterIntensity: 0 - m_HapticSelectEnterDuration: 0 - m_PlayHapticsOnSelectExited: 0 - m_HapticSelectExitIntensity: 0 - m_HapticSelectExitDuration: 0 - m_PlayHapticsOnSelectCanceled: 0 - m_HapticSelectCancelIntensity: 0 - m_HapticSelectCancelDuration: 0 - m_PlayHapticsOnHoverEntered: 0 - m_HapticHoverEnterIntensity: 0 - m_HapticHoverEnterDuration: 0 - m_PlayHapticsOnHoverExited: 0 - m_HapticHoverExitIntensity: 0 - m_HapticHoverExitDuration: 0 - m_PlayHapticsOnHoverCanceled: 0 - m_HapticHoverCancelIntensity: 0 - m_HapticHoverCancelDuration: 0 - m_AllowHoverHapticsWhileSelecting: 1 - m_LineType: 0 - m_BlendVisualLinePoints: 1 - m_MaxRaycastDistance: 30 - m_RayOriginTransform: {fileID: 0} - m_ReferenceFrame: {fileID: 0} - m_Velocity: 16 - m_Acceleration: 9.8 - m_AdditionalGroundHeight: 0.1 - m_AdditionalFlightTime: 0.5 - m_EndPointDistance: 30 - m_EndPointHeight: -10 - m_ControlPointDistance: 10 - m_ControlPointHeight: 5 - m_SampleFrequency: 20 - m_HitDetectionType: 0 - m_SphereCastRadius: 0 - m_ConeCastAngle: 6 - m_RaycastMask: - serializedVersion: 2 - m_Bits: 32 - m_RaycastTriggerInteraction: 1 - m_RaycastSnapVolumeInteraction: 1 - m_HitClosestOnly: 0 - m_HoverToSelect: 0 - m_HoverTimeToSelect: 0.5 - m_AutoDeselect: 0 - m_TimeToAutoDeselect: 3 - m_EnableUIInteraction: 1 - m_BlockUIOnInteractableSelection: 1 - m_AllowAnchorControl: 1 - m_UseForceGrab: 1 - m_RotateSpeed: 180 - m_TranslateSpeed: 1 - m_AnchorRotateReferenceFrame: {fileID: 0} - m_AnchorRotationMode: 0 - m_UIHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_UIHoverExited: - m_PersistentCalls: - m_Calls: [] - m_EnableARRaycasting: 0 - m_OccludeARHitsWith3DObjects: 0 - m_OccludeARHitsWith2DObjects: 0 - m_ScaleMode: 0 ---- !u!114 &637860741 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 637860736} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} m_Name: m_EditorClassIdentifier: m_UpdateTrackingType: 0 m_EnableInputTracking: 1 - m_EnableInputActions: 0 + m_EnableInputActions: 1 m_ModelPrefab: {fileID: 0} - m_ModelParent: {fileID: 733504865} + m_ModelParent: {fileID: 506692965} m_Model: {fileID: 0} m_AnimateModel: 0 - m_ModelSelectTransition: - m_ModelDeSelectTransition: + m_ModelSelectTransition: Grab + m_ModelDeSelectTransition: Grab m_PositionAction: m_UseReference: 1 m_Action: m_Name: Position m_Type: 0 m_ExpectedControlType: - m_Id: ee2b90af-cb76-4d31-80a6-06fad8ac806a + m_Id: 8b170a9b-132e-486d-947e-6a244d4362ea m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -2024308242397127297, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -2024308242397127297, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_RotationAction: m_UseReference: 1 m_Action: m_Name: Rotation m_Type: 0 m_ExpectedControlType: - m_Id: 4c57fe61-e6e1-4df3-bff3-6c688f6f9e9a + m_Id: 080819c2-8547-4beb-8522-e6356be16fb1 m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: 8248158260566104461, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: 8248158260566104461, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_IsTrackedAction: m_UseReference: 0 m_Action: m_Name: Is Tracked m_Type: 1 m_ExpectedControlType: - m_Id: + m_Id: 5fcab0d7-7f85-486b-9ce8-587f91fd6010 m_Processors: m_Interactions: m_SingletonActionBindings: [] @@ -4945,7 +2850,7 @@ MonoBehaviour: m_Name: Tracking State m_Type: 0 m_ExpectedControlType: - m_Id: 513b54c8-e5e6-4655-86fb-ffc0e6581287 + m_Id: bff3ff54-e432-4205-8a89-770a756a58f8 m_Processors: m_Interactions: m_SingletonActionBindings: [] @@ -4957,67 +2862,67 @@ MonoBehaviour: m_Name: Select m_Type: 0 m_ExpectedControlType: - m_Id: 869302d5-d3c7-4c1b-a962-a7e033b42a15 + m_Id: 8e000d1c-13a4-4cc0-ad37-f2e125874399 m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -6131295136447488360, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -6131295136447488360, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_SelectActionValue: m_UseReference: 1 m_Action: m_Name: Select Action Value m_Type: 0 m_ExpectedControlType: - m_Id: 74881b2d-69d1-415a-ba95-f39c2790be4c + m_Id: f93fa1a2-101a-4938-b3bf-d4156f43e4e4 m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -7039868187661461836, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -7039868187661461836, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_ActivateAction: m_UseReference: 1 m_Action: m_Name: Activate m_Type: 0 m_ExpectedControlType: - m_Id: 4aec5842-effb-4789-a584-e3222db901f4 + m_Id: 3995f9f4-6aa7-409a-80d2-5f7ea1464fde m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -5982496924579745919, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -5982496924579745919, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_ActivateActionValue: m_UseReference: 1 m_Action: m_Name: Activate Action Value m_Type: 0 m_ExpectedControlType: - m_Id: 89e16be1-e73a-49a3-b8bd-bdd0bbceb5bb + m_Id: 0dee0d87-a49c-4317-9281-019ed020b1ce m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -5393738492722007444, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -5393738492722007444, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_UIPressAction: m_UseReference: 1 m_Action: m_Name: UI Press m_Type: 0 m_ExpectedControlType: - m_Id: e65a640e-2a41-422f-82dd-ebfb73c6c378 + m_Id: db89d01c-df6f-4954-b868-103dd5bdb514 m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -6395602842196007441, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -6395602842196007441, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_UIPressActionValue: m_UseReference: 0 m_Action: m_Name: UI Press Action Value m_Type: 0 m_ExpectedControlType: - m_Id: 826f3058-ef37-41e9-ba84-4afcd5732d73 + m_Id: c4f9d43a-7eb7-410a-a5ee-80994233e6e4 m_Processors: m_Interactions: m_SingletonActionBindings: [] @@ -5029,7 +2934,7 @@ MonoBehaviour: m_Name: UI Scroll m_Type: 0 m_ExpectedControlType: Vector2 - m_Id: + m_Id: db273f91-ae55-4768-8558-7bb7cdc5d02b m_Processors: m_Interactions: m_SingletonActionBindings: [] @@ -5041,31 +2946,31 @@ MonoBehaviour: m_Name: Haptic Device m_Type: 0 m_ExpectedControlType: - m_Id: 80072ca0-f27a-4040-8ae9-a0fa7a761bbc + m_Id: 3e09b626-c80d-40ec-9592-eb3fe89c2038 m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -8785819595477538065, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -8785819595477538065, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_RotateAnchorAction: m_UseReference: 1 m_Action: m_Name: Rotate Anchor m_Type: 0 m_ExpectedControlType: - m_Id: 13f6cacf-e639-4a90-864c-abb89495ad0c + m_Id: 3dca8766-e652-4e78-8406-420aa73ba338 m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -7363382999065477798, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -7363382999065477798, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_DirectionalAnchorRotationAction: m_UseReference: 0 m_Action: - m_Name: + m_Name: Directional Anchor Rotation m_Type: 0 m_ExpectedControlType: - m_Id: + m_Id: 556e96de-15e0-4c21-af61-26549b7aff58 m_Processors: m_Interactions: m_SingletonActionBindings: [] @@ -5077,19 +2982,19 @@ MonoBehaviour: m_Name: Translate Anchor m_Type: 0 m_ExpectedControlType: - m_Id: 6713f8f9-89a2-46da-aad5-ae077ac477ee + m_Id: e873605e-6a95-4389-8fbe-39069340ba92 m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: 7779212132400271959, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: 7779212132400271959, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_ScaleToggleAction: m_UseReference: 0 m_Action: m_Name: Scale Toggle m_Type: 1 m_ExpectedControlType: - m_Id: 286d9bd4-26e9-420c-8388-e665eff6186f + m_Id: 54622687-cf88-41cc-8b5a-2cfd522daf3a m_Processors: m_Interactions: m_SingletonActionBindings: [] @@ -5101,60 +3006,14 @@ MonoBehaviour: m_Name: Scale Delta m_Type: 0 m_ExpectedControlType: Vector2 - m_Id: 9b9023bf-9a71-4cf5-93ac-5f72bdfeb34b + m_Id: 4e22ab00-2340-424c-80a9-858890f88c2d m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 m_Reference: {fileID: 0} m_ButtonPressPoint: 0.5 ---- !u!1 &643048780 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 643048781} - - component: {fileID: 643048782} - m_Layer: 0 - m_Name: Collider (6) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &643048781 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 643048780} - m_LocalRotation: {x: 0.27059805, y: 0.27059805, z: 0.6532815, w: 0.6532815} - m_LocalPosition: {x: -0.182, y: 0, z: -0.163} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 660021081} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 45, z: 90} ---- !u!136 &643048782 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 643048780} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - m_Radius: 0.02 - m_Height: 0.2 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &653242648 +--- !u!1 &481569935 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -5162,30 +3021,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 653242649} + - component: {fileID: 481569936} m_Layer: 0 - m_Name: Index_Tip_Left + m_Name: AttachTransform m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &653242649 +--- !u!4 &481569936 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 653242648} - m_LocalRotation: {x: 0.000000029802326, y: 9.492409e-15, z: 0.00000031851238, w: 1} - m_LocalPosition: {x: -0.02301526, y: 0.000000085830685, z: -0.000000114440915} + m_GameObject: {fileID: 481569935} + m_LocalRotation: {x: 0.36650118, y: 0, z: 0, w: 0.9304176} + m_LocalPosition: {x: -0.0447, y: -0.0476, z: 0.0131} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 693789267} + m_Father: {fileID: 514757337} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &655638805 + m_LocalEulerAnglesHint: {x: 43, y: 0, z: 0} +--- !u!1 &496138946 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -5193,203 +3052,644 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 655638806} - - component: {fileID: 655638808} - - component: {fileID: 655638807} - m_Layer: 8 - m_Name: Cylinder + - component: {fileID: 496138948} + - component: {fileID: 496138951} + - component: {fileID: 496138947} + - component: {fileID: 496138950} + - component: {fileID: 496138949} + m_Layer: 0 + m_Name: Right Teleport Controller m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &655638806 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 655638805} - m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: -0.1} - m_LocalScale: {x: 1, y: 0.1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 375530500} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &655638807 -MeshRenderer: +--- !u!114 &496138947 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 655638805} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: a16db0f18ace882458e325d3243cb6da, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &655638808 -MeshFilter: + m_GameObject: {fileID: 496138946} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 2089871579} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 256 + m_InteractionLayers: + m_Bits: 2 + m_AttachTransform: {fileID: 0} + m_KeepSelectedTargetValid: 0 + m_DisableVisualsWhenBlockedInGroup: 1 + m_StartingSelectedInteractable: {fileID: 0} + m_StartingTargetFilter: {fileID: 0} + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectActionTrigger: 0 + m_HideControllerOnSelect: 0 + m_AllowHoveredActivate: 1 + m_TargetPriorityMode: 0 + m_PlayAudioClipOnSelectEntered: 0 + m_AudioClipForOnSelectEntered: {fileID: 0} + m_PlayAudioClipOnSelectExited: 0 + m_AudioClipForOnSelectExited: {fileID: 0} + m_PlayAudioClipOnSelectCanceled: 0 + m_AudioClipForOnSelectCanceled: {fileID: 0} + m_PlayAudioClipOnHoverEntered: 0 + m_AudioClipForOnHoverEntered: {fileID: 0} + m_PlayAudioClipOnHoverExited: 0 + m_AudioClipForOnHoverExited: {fileID: 0} + m_PlayAudioClipOnHoverCanceled: 0 + m_AudioClipForOnHoverCanceled: {fileID: 0} + m_AllowHoverAudioWhileSelecting: 1 + m_PlayHapticsOnSelectEntered: 0 + m_HapticSelectEnterIntensity: 0 + m_HapticSelectEnterDuration: 0 + m_PlayHapticsOnSelectExited: 0 + m_HapticSelectExitIntensity: 0 + m_HapticSelectExitDuration: 0 + m_PlayHapticsOnSelectCanceled: 0 + m_HapticSelectCancelIntensity: 0 + m_HapticSelectCancelDuration: 0 + m_PlayHapticsOnHoverEntered: 0 + m_HapticHoverEnterIntensity: 0 + m_HapticHoverEnterDuration: 0 + m_PlayHapticsOnHoverExited: 0 + m_HapticHoverExitIntensity: 0 + m_HapticHoverExitDuration: 0 + m_PlayHapticsOnHoverCanceled: 0 + m_HapticHoverCancelIntensity: 0 + m_HapticHoverCancelDuration: 0 + m_AllowHoverHapticsWhileSelecting: 1 + m_LineType: 1 + m_BlendVisualLinePoints: 1 + m_MaxRaycastDistance: 30 + m_RayOriginTransform: {fileID: 1982479364} + m_ReferenceFrame: {fileID: 0} + m_Velocity: 10 + m_Acceleration: 9.8 + m_AdditionalGroundHeight: 0.1 + m_AdditionalFlightTime: 0.5 + m_EndPointDistance: 30 + m_EndPointHeight: -10 + m_ControlPointDistance: 10 + m_ControlPointHeight: 5 + m_SampleFrequency: 20 + m_HitDetectionType: 0 + m_SphereCastRadius: 0 + m_ConeCastAngle: 6 + m_RaycastMask: + serializedVersion: 2 + m_Bits: 256 + m_RaycastTriggerInteraction: 1 + m_RaycastSnapVolumeInteraction: 1 + m_HitClosestOnly: 0 + m_HoverToSelect: 1 + m_HoverTimeToSelect: 0 + m_AutoDeselect: 0 + m_TimeToAutoDeselect: 3 + m_EnableUIInteraction: 1 + m_BlockUIOnInteractableSelection: 1 + m_AllowAnchorControl: 1 + m_UseForceGrab: 1 + m_RotateSpeed: 180 + m_TranslateSpeed: 1 + m_AnchorRotateReferenceFrame: {fileID: 0} + m_AnchorRotationMode: 0 + m_UIHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_UIHoverExited: + m_PersistentCalls: + m_Calls: [] + m_EnableARRaycasting: 0 + m_OccludeARHitsWith3DObjects: 0 + m_OccludeARHitsWith2DObjects: 0 + m_ScaleMode: 0 +--- !u!4 &496138948 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 655638805} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1001 &660021079 -PrefabInstance: + m_GameObject: {fileID: 496138946} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1982479364} + m_Father: {fileID: 697578261} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &496138949 +MonoBehaviour: m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1743725476} - m_Modifications: - - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_LocalRotation.w - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_LocalRotation.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 180 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -7511558181221131132, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 3b8d4fff00195aa4792d649902e68bcd, type: 2} - - target: {fileID: -7511558181221131132, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_Materials.Array.data[1] - value: - objectReference: {fileID: 2100000, guid: 525bac3f393fa1349a1508822fb6abb0, type: 2} - - target: {fileID: -4818106957885473086, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 3b8d4fff00195aa4792d649902e68bcd, type: 2} - - target: {fileID: 919132149155446097, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_Name - value: Target - objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_StaticEditorFlags - value: 4294967295 - objectReference: {fileID: 0} - - target: {fileID: 2191750151954457832, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_StaticEditorFlags - value: 4294967295 - objectReference: {fileID: 0} - - target: {fileID: 2229032678205019293, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 3b8d4fff00195aa4792d649902e68bcd, type: 2} - - target: {fileID: 2229032678205019293, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_Materials.Array.data[1] - value: - objectReference: {fileID: 2100000, guid: 16598d12187e7ef49aaf6d2ec4136e05, type: 2} - - target: {fileID: 2229032678205019293, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_Materials.Array.data[2] - value: - objectReference: {fileID: 2100000, guid: 525bac3f393fa1349a1508822fb6abb0, type: 2} - - target: {fileID: 3396913584297481876, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - propertyPath: m_StaticEditorFlags - value: 4294967295 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} ---- !u!4 &660021080 stripped -Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - m_PrefabInstance: {fileID: 660021079} - m_PrefabAsset: {fileID: 0} ---- !u!4 &660021081 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 393777075064552474, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - m_PrefabInstance: {fileID: 660021079} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} ---- !u!1 &660021082 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 2191750151954457832, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - m_PrefabInstance: {fileID: 660021079} + m_GameObject: {fileID: 496138946} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LineWidth: 0.02 + m_OverrideInteractorLineLength: 1 + m_LineLength: 10 + m_AutoAdjustLineLength: 0 + m_MinLineLength: 0.5 + m_UseDistanceToHitAsMaxLineLength: 1 + m_LineRetractionDelay: 0.5 + m_LineLengthChangeSpeed: 12 + m_WidthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_SetLineColorGradient: 1 + m_ValidColorGradient: + serializedVersion: 2 + key0: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 0} + key1: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 1} + key2: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 32768 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 32768 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 3 + m_InvalidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.39215687, b: 0.18431373, a: 0} + key1: {r: 1, g: 0.39215687, b: 0.18431373, a: 1} + key2: {r: 1, g: 0.39215687, b: 0.18431373, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 32768 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 32768 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 3 + m_BlockedColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + key1: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_TreatSelectionAsValidState: 0 + m_SmoothMovement: 0 + m_FollowTightness: 10 + m_SnapThresholdDistance: 10 + m_Reticle: {fileID: 0} + m_BlockedReticle: {fileID: 0} + m_StopLineAtFirstRaycastHit: 1 + m_StopLineAtSelection: 0 + m_SnapEndpointIfAvailable: 1 + m_LineBendRatio: 0.5 + m_OverrideInteractorLineOrigin: 1 + m_LineOriginTransform: {fileID: 0} + m_LineOriginOffset: 0 +--- !u!120 &496138950 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} ---- !u!65 &660021083 -BoxCollider: + m_GameObject: {fileID: 496138946} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 0} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.02 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 4 + numCapVertices: 4 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 1 + m_Loop: 0 +--- !u!114 &496138951 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 660021082} - m_Material: {fileID: 0} - m_IsTrigger: 0 + m_GameObject: {fileID: 496138946} m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1.7976047, y: 1.1504669, z: 0.08324993} - m_Center: {x: 0, y: 3.5952096, z: 0.01631552} ---- !u!1 &686681831 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UpdateTrackingType: 0 + m_EnableInputTracking: 1 + m_EnableInputActions: 0 + m_ModelPrefab: {fileID: 0} + m_ModelParent: {fileID: 820468471} + m_Model: {fileID: 0} + m_AnimateModel: 0 + m_ModelSelectTransition: + m_ModelDeSelectTransition: + m_PositionAction: + m_UseReference: 1 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -3326005586356538449, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_RotationAction: + m_UseReference: 1 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 5101698808175986029, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_IsTrackedAction: + m_UseReference: 0 + m_Action: + m_Name: Is Tracked + m_Type: 1 + m_ExpectedControlType: + m_Id: fcd2b3a9-43ac-48cf-a7ef-54b9ad619657 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 1 + m_Reference: {fileID: 0} + m_TrackingStateAction: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: + m_Id: cc4e2ef5-ea43-46d3-b5d9-bb0fd6cf288f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_SelectAction: + m_UseReference: 1 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -8270564778575511633, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_SelectActionValue: + m_UseReference: 1 + m_Action: + m_Name: Select Action Value + m_Type: 0 + m_ExpectedControlType: + m_Id: 056d5a5d-5859-40a6-9c77-a8c50f2557c3 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 4766120400929042988, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_ActivateAction: + m_UseReference: 1 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 83097790271614945, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_ActivateActionValue: + m_UseReference: 1 + m_Action: + m_Name: Activate Action Value + m_Type: 0 + m_ExpectedControlType: + m_Id: 0c708103-b771-4cf9-a58f-f4cd7216526c + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -3285721481334498719, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_UIPressAction: + m_UseReference: 1 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 3279264004350380116, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_UIPressActionValue: + m_UseReference: 0 + m_Action: + m_Name: UI Press Action Value + m_Type: 0 + m_ExpectedControlType: + m_Id: 820dd6dd-cf7f-42f3-bfef-c218ea683709 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_UIScrollAction: + m_UseReference: 0 + m_Action: + m_Name: UI Scroll + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 6e0e5c0a-f766-4ba1-ac09-ccb5e05c9f7d + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_HapticDeviceAction: + m_UseReference: 1 + m_Action: + m_Name: Haptic Device + m_Type: 0 + m_ExpectedControlType: + m_Id: 9ad5ff42-2240-49bb-89c4-c981d3c023eb + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -8222252007134549311, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_RotateAnchorAction: + m_UseReference: 1 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -5913262927076077117, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_DirectionalAnchorRotationAction: + m_UseReference: 0 + m_Action: + m_Name: Directional Anchor Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: f900ec0d-eadb-4813-baa4-f9f0709793fe + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_TranslateAnchorAction: + m_UseReference: 1 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 875253871413052681, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_ScaleToggleAction: + m_UseReference: 0 + m_Action: + m_Name: Scale Toggle + m_Type: 1 + m_ExpectedControlType: + m_Id: 9b17f14a-5c0c-47d4-bbf7-e6b9fceff015 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ScaleDeltaAction: + m_UseReference: 0 + m_Action: + m_Name: Scale Delta + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 2b918fe0-516b-4793-b6b1-98f6a5f40457 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ButtonPressPoint: 0.5 +--- !u!1 &503181884 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -5397,157 +3697,165 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 686681832} + - component: {fileID: 503181885} + - component: {fileID: 503181886} + - component: {fileID: 503181890} + - component: {fileID: 503181889} + - component: {fileID: 503181888} + - component: {fileID: 503181887} m_Layer: 0 - m_Name: ModelPt + m_Name: Magic Cube_SnapZone m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &686681832 +--- !u!4 &503181885 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 686681831} + m_GameObject: {fileID: 503181884} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: 1.2, z: 0.7500001} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1943140085} - m_Father: {fileID: 1390367067} + - {fileID: 242342982} + m_Father: {fileID: 1756511964} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &693789266 -GameObject: +--- !u!114 &503181886 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 693789267} - m_Layer: 0 - m_Name: Index_2_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &693789267 -Transform: + m_GameObject: {fileID: 503181884} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc6efdd45e6a00744aaf4c68264d6d7c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 1 + m_AttachTransform: {fileID: 242342982} + m_KeepSelectedTargetValid: 1 + m_DisableVisualsWhenBlockedInGroup: 1 + m_StartingSelectedInteractable: {fileID: 0} + m_StartingTargetFilter: {fileID: 0} + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_ShowInteractableHoverMeshes: 1 + m_InteractableHoverMeshMaterial: {fileID: 0} + m_InteractableCantHoverMeshMaterial: {fileID: 0} + m_SocketActive: 1 + m_InteractableHoverScale: 1 + m_RecycleDelayTime: 1 + m_HoverSocketSnapping: 0 + m_SocketSnappingRadius: 0.1 + m_SocketScaleMode: 0 + m_FixedScale: {x: 1, y: 1, z: 1} + m_TargetBoundsSize: {x: 1, y: 1, z: 1} + shownHighlightObject: {fileID: 919132149155446097, guid: 1ed1d5cc1197f8144a46c56a59341db7, type: 3} + ShowHighlightInEditor: 1 + highlightMeshMaterial: {fileID: 2100000, guid: 34211d2175b5963469d4deb504fbcbaf, type: 2} + validationMaterial: {fileID: 2100000, guid: c6c888b079480654fbf337e7fe50b405, type: 2} + invalidMaterial: {fileID: 2100000, guid: 69e2b61a70de44f48909a564a7cf9c62, type: 2} + previewMesh: {fileID: 2119201252} +--- !u!65 &503181887 +BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 693789266} - m_LocalRotation: {x: 0.006532279, y: 0.0032989993, z: -0.17059992, w: 0.98531324} - m_LocalPosition: {x: -0.023907261, y: -0.00000026226044, z: 0.00000022888183} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 653242649} - m_Father: {fileID: 1011798184} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &705507993 -GameObject: + m_GameObject: {fileID: 503181884} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.4, y: 0.4, z: 0.4} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &503181888 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 705507995} - - component: {fileID: 705507994} - m_Layer: 0 - m_Name: Sun - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!108 &705507994 -Light: + m_GameObject: {fileID: 503181884} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 557aaed036734781b129d67ec56c9366, type: 3} + m_Name: + m_EditorClassIdentifier: + acceptedProcessSceneObjects: + - {fileID: 248065658} +--- !u!114 &503181889 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 705507993} + m_GameObject: {fileID: 503181884} m_Enabled: 1 - serializedVersion: 10 - m_Type: 1 - m_Shape: 0 - m_Color: {r: 0.85882354, g: 0.858539, b: 0.84705883, a: 1} - m_Intensity: 0.8 - m_Range: 10 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 2 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 1 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 6570 - m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 - m_ShadowRadius: 0 - m_ShadowAngle: 0 ---- !u!4 &705507995 -Transform: + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eb7be990fff0a2142a874601356b26df, type: 3} + m_Name: + m_EditorClassIdentifier: + lockOnParentObjectLock: 1 + objectAttached: + m_PersistentCalls: + m_Calls: [] + objectDetached: + m_PersistentCalls: + m_Calls: [] + lockOnUnsnap: 1 +--- !u!114 &503181890 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 705507993} - m_LocalRotation: {x: 0.8864501, y: 0.40046445, z: 0.13547534, w: 0.18836364} - m_LocalPosition: {x: 0, y: 5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 13.029, y: 156.335, z: 128.636} ---- !u!1 &733504864 + m_GameObject: {fileID: 503181884} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} + m_Name: + m_EditorClassIdentifier: + serializedGuid: + serializedGuid: 49823b067d495c47aac98eb841ddc61e + uniqueName: Magic Cube_SnapZone_1 + tags: [] +--- !u!1 &506692964 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -5555,7 +3863,7 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 733504865} + - component: {fileID: 506692965} m_Layer: 0 m_Name: ModelPt m_TagString: Untagged @@ -5563,103 +3871,55 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &733504865 +--- !u!4 &506692965 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 733504864} + m_GameObject: {fileID: 506692964} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1202705125} - m_Father: {fileID: 1809129953} + - {fileID: 1015737782} + m_Father: {fileID: 440165965} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!21 &738067764 -Material: - serializedVersion: 8 +--- !u!1 &512971541 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Standard - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ValidKeywords: - - _ALPHAPREMULTIPLY_ON - m_InvalidKeywords: [] - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3000 - stringTagMap: - RenderType: Transparent - 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_Ints: [] - m_Floats: - - _BumpScale: 1 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DstBlend: 10 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 3 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _UVSec: 0 - - _ZWrite: 0 - m_Colors: - - _Color: {r: 0.4, g: 0.5882353, b: 1, a: 0.19607843} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - m_BuildTextureStacks: [] ---- !u!1 &757363299 + serializedVersion: 6 + m_Component: + - component: {fileID: 512971542} + m_Layer: 0 + m_Name: Index_2_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &512971542 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 512971541} + m_LocalRotation: {x: 0.006532279, y: 0.0032989993, z: -0.17059992, w: 0.98531324} + m_LocalPosition: {x: -0.023907261, y: -0.00000026226044, z: 0.00000022888183} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1421788325} + m_Father: {fileID: 1352490008} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &514757336 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -5667,136 +3927,200 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 757363300} - - component: {fileID: 757363302} - - component: {fileID: 757363301} - m_Layer: 8 - m_Name: Cylinder + - component: {fileID: 514757337} + - component: {fileID: 514757341} + - component: {fileID: 514757340} + - component: {fileID: 514757339} + - component: {fileID: 514757338} + m_Layer: 0 + m_Name: Left UI Controller m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &757363300 +--- !u!4 &514757337 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 757363299} - m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: -0.1} - m_LocalScale: {x: 1, y: 0.1, z: 1} + m_GameObject: {fileID: 514757336} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1731060433} - m_RootOrder: 0 + m_Children: + - {fileID: 481569936} + m_Father: {fileID: 1773926310} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &757363301 -MeshRenderer: +--- !u!114 &514757338 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 514757336} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LineWidth: 0.02 + m_OverrideInteractorLineLength: 1 + m_LineLength: 10 + m_AutoAdjustLineLength: 0 + m_MinLineLength: 0.5 + m_UseDistanceToHitAsMaxLineLength: 1 + m_LineRetractionDelay: 0.5 + m_LineLengthChangeSpeed: 12 + m_WidthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_SetLineColorGradient: 1 + m_ValidColorGradient: + serializedVersion: 2 + key0: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 0} + key1: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 1} + key2: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 1} + key3: {r: 0, g: 0, b: 0, a: 1} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 32768 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 32768 + atime2: 65535 + atime3: 65535 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 3 + m_InvalidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.39215687, b: 0.18431373, a: 0} + key1: {r: 1, g: 0.39215687, b: 0.18431373, a: 1} + key2: {r: 1, g: 0.39215687, b: 0.18431373, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 32768 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 32768 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 3 + m_BlockedColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + key1: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_TreatSelectionAsValidState: 0 + m_SmoothMovement: 0 + m_FollowTightness: 10 + m_SnapThresholdDistance: 10 + m_Reticle: {fileID: 0} + m_BlockedReticle: {fileID: 0} + m_StopLineAtFirstRaycastHit: 1 + m_StopLineAtSelection: 0 + m_SnapEndpointIfAvailable: 1 + m_LineBendRatio: 0.5 + m_OverrideInteractorLineOrigin: 1 + m_LineOriginTransform: {fileID: 0} + m_LineOriginOffset: 0 +--- !u!120 &514757339 +LineRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 757363299} + m_GameObject: {fileID: 514757336} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: a16db0f18ace882458e325d3243cb6da, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &757363302 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 757363299} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &790520235 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 790520236} - - component: {fileID: 790520239} - - component: {fileID: 790520238} - - component: {fileID: 790520237} - m_Layer: 0 - m_Name: SnapPoint - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &790520236 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 790520235} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1525491574} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &790520237 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 790520235} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 539108941} + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -5816,65 +4140,429 @@ MeshRenderer: m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &790520238 -MeshFilter: + m_SortingOrder: 5 + m_Positions: [] + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.02 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 1, a: 1} + key1: {r: 0, g: 0, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 4 + numCapVertices: 4 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 1 + m_Loop: 0 +--- !u!114 &514757340 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 790520235} - m_Mesh: {fileID: 862649805} ---- !u!114 &790520239 + m_GameObject: {fileID: 514757336} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 203357f2f04686b4c860a9361fd12c36, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 32 + m_InteractionLayers: + m_Bits: 32 + m_AttachTransform: {fileID: 481569936} + m_KeepSelectedTargetValid: 1 + m_DisableVisualsWhenBlockedInGroup: 1 + m_StartingSelectedInteractable: {fileID: 0} + m_StartingTargetFilter: {fileID: 0} + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectActionTrigger: 1 + m_HideControllerOnSelect: 0 + m_AllowHoveredActivate: 0 + m_TargetPriorityMode: 0 + m_PlayAudioClipOnSelectEntered: 0 + m_AudioClipForOnSelectEntered: {fileID: 0} + m_PlayAudioClipOnSelectExited: 0 + m_AudioClipForOnSelectExited: {fileID: 0} + m_PlayAudioClipOnSelectCanceled: 0 + m_AudioClipForOnSelectCanceled: {fileID: 0} + m_PlayAudioClipOnHoverEntered: 0 + m_AudioClipForOnHoverEntered: {fileID: 0} + m_PlayAudioClipOnHoverExited: 0 + m_AudioClipForOnHoverExited: {fileID: 0} + m_PlayAudioClipOnHoverCanceled: 0 + m_AudioClipForOnHoverCanceled: {fileID: 0} + m_AllowHoverAudioWhileSelecting: 1 + m_PlayHapticsOnSelectEntered: 0 + m_HapticSelectEnterIntensity: 0 + m_HapticSelectEnterDuration: 0 + m_PlayHapticsOnSelectExited: 0 + m_HapticSelectExitIntensity: 0 + m_HapticSelectExitDuration: 0 + m_PlayHapticsOnSelectCanceled: 0 + m_HapticSelectCancelIntensity: 0 + m_HapticSelectCancelDuration: 0 + m_PlayHapticsOnHoverEntered: 0 + m_HapticHoverEnterIntensity: 0 + m_HapticHoverEnterDuration: 0 + m_PlayHapticsOnHoverExited: 0 + m_HapticHoverExitIntensity: 0 + m_HapticHoverExitDuration: 0 + m_PlayHapticsOnHoverCanceled: 0 + m_HapticHoverCancelIntensity: 0 + m_HapticHoverCancelDuration: 0 + m_AllowHoverHapticsWhileSelecting: 1 + m_LineType: 0 + m_BlendVisualLinePoints: 1 + m_MaxRaycastDistance: 30 + m_RayOriginTransform: {fileID: 0} + m_ReferenceFrame: {fileID: 0} + m_Velocity: 16 + m_Acceleration: 9.8 + m_AdditionalGroundHeight: 0.1 + m_AdditionalFlightTime: 0.5 + m_EndPointDistance: 30 + m_EndPointHeight: -10 + m_ControlPointDistance: 10 + m_ControlPointHeight: 5 + m_SampleFrequency: 20 + m_HitDetectionType: 0 + m_SphereCastRadius: 0 + m_ConeCastAngle: 6 + m_RaycastMask: + serializedVersion: 2 + m_Bits: 32 + m_RaycastTriggerInteraction: 1 + m_RaycastSnapVolumeInteraction: 1 + m_HitClosestOnly: 0 + m_HoverToSelect: 0 + m_HoverTimeToSelect: 0.5 + m_AutoDeselect: 0 + m_TimeToAutoDeselect: 3 + m_EnableUIInteraction: 1 + m_BlockUIOnInteractableSelection: 1 + m_AllowAnchorControl: 1 + m_UseForceGrab: 1 + m_RotateSpeed: 180 + m_TranslateSpeed: 1 + m_AnchorRotateReferenceFrame: {fileID: 0} + m_AnchorRotationMode: 0 + m_UIHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_UIHoverExited: + m_PersistentCalls: + m_Calls: [] + m_EnableARRaycasting: 0 + m_OccludeARHitsWith3DObjects: 0 + m_OccludeARHitsWith2DObjects: 0 + m_ScaleMode: 0 +--- !u!114 &514757341 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 790520235} + m_GameObject: {fileID: 514757336} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 88ea78c93b844cc1b7f98cca70e8679c, type: 3} + m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} m_Name: m_EditorClassIdentifier: - parent: {fileID: 1525491575} ---- !u!1 &813701129 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 813701130} - m_Layer: 0 - m_Name: Station Unlock Chest - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &813701130 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 813701129} - m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} - m_LocalPosition: {x: 1.5, y: 0, z: -2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2014095924} - - {fileID: 1241623310} - - {fileID: 2121825122} - - {fileID: 586564670} - m_Father: {fileID: 0} - m_RootOrder: 8 - m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} ---- !u!1 &815556418 + m_UpdateTrackingType: 0 + m_EnableInputTracking: 1 + m_EnableInputActions: 0 + m_ModelPrefab: {fileID: 0} + m_ModelParent: {fileID: 506692965} + m_Model: {fileID: 0} + m_AnimateModel: 0 + m_ModelSelectTransition: + m_ModelDeSelectTransition: + m_PositionAction: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: ee2b90af-cb76-4d31-80a6-06fad8ac806a + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -2024308242397127297, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_RotationAction: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 4c57fe61-e6e1-4df3-bff3-6c688f6f9e9a + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 8248158260566104461, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_IsTrackedAction: + m_UseReference: 0 + m_Action: + m_Name: Is Tracked + m_Type: 1 + m_ExpectedControlType: + m_Id: ddf8704b-2999-4398-9c0c-f544b97511bc + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 1 + m_Reference: {fileID: 0} + m_TrackingStateAction: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: + m_Id: 513b54c8-e5e6-4655-86fb-ffc0e6581287 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_SelectAction: + m_UseReference: 1 + m_Action: + m_Name: Select + m_Type: 0 + m_ExpectedControlType: + m_Id: 869302d5-d3c7-4c1b-a962-a7e033b42a15 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -6131295136447488360, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_SelectActionValue: + m_UseReference: 1 + m_Action: + m_Name: Select Action Value + m_Type: 0 + m_ExpectedControlType: + m_Id: 74881b2d-69d1-415a-ba95-f39c2790be4c + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -7039868187661461836, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_ActivateAction: + m_UseReference: 1 + m_Action: + m_Name: Activate + m_Type: 0 + m_ExpectedControlType: + m_Id: 4aec5842-effb-4789-a584-e3222db901f4 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -5982496924579745919, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_ActivateActionValue: + m_UseReference: 1 + m_Action: + m_Name: Activate Action Value + m_Type: 0 + m_ExpectedControlType: + m_Id: 89e16be1-e73a-49a3-b8bd-bdd0bbceb5bb + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -5393738492722007444, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_UIPressAction: + m_UseReference: 1 + m_Action: + m_Name: UI Press + m_Type: 0 + m_ExpectedControlType: + m_Id: e65a640e-2a41-422f-82dd-ebfb73c6c378 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -6395602842196007441, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_UIPressActionValue: + m_UseReference: 0 + m_Action: + m_Name: UI Press Action Value + m_Type: 0 + m_ExpectedControlType: + m_Id: 826f3058-ef37-41e9-ba84-4afcd5732d73 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_UIScrollAction: + m_UseReference: 0 + m_Action: + m_Name: UI Scroll + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 81d76e5d-99e0-4c7d-b7aa-4b9b356a9678 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_HapticDeviceAction: + m_UseReference: 1 + m_Action: + m_Name: Haptic Device + m_Type: 0 + m_ExpectedControlType: + m_Id: 80072ca0-f27a-4040-8ae9-a0fa7a761bbc + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -8785819595477538065, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_RotateAnchorAction: + m_UseReference: 1 + m_Action: + m_Name: Rotate Anchor + m_Type: 0 + m_ExpectedControlType: + m_Id: 13f6cacf-e639-4a90-864c-abb89495ad0c + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -7363382999065477798, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_DirectionalAnchorRotationAction: + m_UseReference: 0 + m_Action: + m_Name: Directional Anchor Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: b3c94e4f-767d-44c1-8640-f2e1c8cd8399 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_TranslateAnchorAction: + m_UseReference: 1 + m_Action: + m_Name: Translate Anchor + m_Type: 0 + m_ExpectedControlType: + m_Id: 6713f8f9-89a2-46da-aad5-ae077ac477ee + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 7779212132400271959, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_ScaleToggleAction: + m_UseReference: 0 + m_Action: + m_Name: Scale Toggle + m_Type: 1 + m_ExpectedControlType: + m_Id: 286d9bd4-26e9-420c-8388-e665eff6186f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ScaleDeltaAction: + m_UseReference: 0 + m_Action: + m_Name: Scale Delta + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 9b9023bf-9a71-4cf5-93ac-5f72bdfeb34b + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ButtonPressPoint: 0.5 +--- !u!1 &518602150 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -5882,76 +4570,58 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 815556419} - - component: {fileID: 815556422} - - component: {fileID: 815556423} - - component: {fileID: 815556421} - - component: {fileID: 815556420} + - component: {fileID: 518602151} + - component: {fileID: 518602152} + - component: {fileID: 518602154} + - component: {fileID: 518602153} m_Layer: 8 - m_Name: Teleportation Spot + m_Name: Teleportation area m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &815556419 + m_IsActive: 0 +--- !u!4 &518602151 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 815556418} + m_GameObject: {fileID: 518602150} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 1.5, y: 0, z: 1.5} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1521703297} - m_Father: {fileID: 1527860102} - m_RootOrder: 0 + m_Children: [] + m_Father: {fileID: 33704422} + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &815556420 +--- !u!114 &518602152 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 815556418} + m_GameObject: {fileID: 518602150} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 584ad12357614f4fbb5460fdf72e8cc6, type: 3} + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: - lockOnParentObjectLock: 1 - teleportEnded: - m_PersistentCalls: - m_Calls: [] - initialized: - m_PersistentCalls: - m_Calls: [] ---- !u!65 &815556421 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 815556418} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 0.01, z: 1} - m_Center: {x: 0, y: 0.02, z: 0} ---- !u!114 &815556422 + serializedGuid: + serializedGuid: b83ed1c9b1876e46820d20bbcae66652 + uniqueName: Teleportation area + tags: [] +--- !u!114 &518602153 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 815556418} + m_GameObject: {fileID: 518602150} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0193c710a3042c6479b28370a44e0b0f, type: 3} + m_Script: {fileID: 11500000, guid: db00376f7b7d66e4da00d63492cb7971, type: 3} m_Name: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} @@ -5960,7 +4630,7 @@ MonoBehaviour: serializedVersion: 2 m_Bits: 4294967295 m_InteractionLayers: - m_Bits: 256 + m_Bits: 2 m_DistanceCalculationMode: 1 m_SelectMode: 1 m_FocusMode: 1 @@ -6045,7 +4715,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_TeleportationProvider: {fileID: 0} - m_MatchOrientation: 2 + m_MatchOrientation: 0 m_MatchDirectionalInput: 0 m_TeleportTrigger: 3 m_FilterSelectionByHitNormal: 0 @@ -6053,22 +4723,185 @@ MonoBehaviour: m_Teleporting: m_PersistentCalls: m_Calls: [] - m_TeleportAnchorTransform: {fileID: 1521703297} ---- !u!114 &815556423 -MonoBehaviour: +--- !u!64 &518602154 +MeshCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 815556418} + m_GameObject: {fileID: 518602150} + m_Material: {fileID: 0} + m_IsTrigger: 0 m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: -8378139086155444565, guid: 3d993d7375e6eec4d971b7d72f65da14, type: 3} +--- !u!43 &524671518 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_Name: - m_EditorClassIdentifier: - uniqueName: Teleportation Spot - tags: [] ---- !u!1 &844459426 + serializedVersion: 10 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 960 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 205 + localAABB: + m_Center: {x: -0.000000029802322, y: 0.000000029802322, z: 0.000000007450581} + m_Extent: {x: 0.2, y: 0.2, z: 0.19999999} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 0 + m_KeepVertices: 1 + m_KeepIndices: 1 + m_IndexFormat: 0 + m_IndexBuffer: 00000100020001000300020001000400030002000300050004000600030004000700060003000800050003000600080005000800090007000a00060007000b000a0006000c00080006000a000c0008000d00090008000c000d0009000d000e000b000f000a000b0010000f000a0011000c000f0011000a000c0012000d00110012000c00100013000f001000140013000f00150011000f00130015001400160013001400170016000d0018000e00120018000d0011001900120015001900110013001a001500130016001a0017001b00160017001c001b001c001d001b0016001b001e0016001e001a001d001f001b001b001f001e001d0020001f0015001a0021001500210019001900220012001200220018001a001e0023001a0023002100200024001f002000250024001f0026001e001e00260023001f0024002600250027002400250028002700240027002900240029002600260029002a0026002a00230023002a002b00210023002b0021002b002c0021002c00190019002c0022002c002b002d002b002e002d0022002c002f002c002d002f002e0030002d002e003100300022002f0032001800220032002f002d0033002d0030003300310034003000310035003400350036003400350037003600340036003800300034003900340038003900300039003300390038003a0039003a003b00330039003b003b003a003c002f0033003d003d0033003b0032002f003d003d003b003e003e003b003c0032003d003f003f003d003e00400032003f001800320040000e00180040000e00400041000e004100420040003f0043004000430041003f003e0044003f00440043003e003c0045003e004500440041004600420042004600470041004300480041004800460043004400490043004900480046004a00470047004a004b0048004c00460046004c004a004a004d004b004b004d004e004a004f004d004c004f004a004c0050004f00480051004c00510050004c0048004900510051005200500044005300490044004500530049005400510051005400520049005300540053004500550054005300560053005500560052005400570054005600570045005800550045003c0058003c005900580059005a00580059005b005a00550058005c0058005a005c00560055005d0055005c005d005b005e005a005b005f005e005a0060005c005a005e0060005f0061005e005f00620061005e00610063005e00630060006000630064005c00600065006000640065005d005c00650065006400660056005d0067005700560067005d006500680068006500660067005d006800570067006900670068006a0067006a006900680066006b0068006b006a00570069006c00520057006c006d0052006c006d006c006e006f006d006e006c00690070006e006c00700069006a0071006900710070006f006e00720073006f0072006e007000740072006e007400730072007500760073007500750072007700720074007700770074007800740070007900740079007800700071007900780079007a006a007b0071006a006b007b0071007c00790079007c007a0071007b007c007b006b007d007c007b007e007b007d007e007a007c007f007c007e007f006b0080007d006b00660080006600810080008100820080008100830082007d00800084008000820084007e007d0085007d008400850083008600820083008700860082008800840082008600880087008900860087008a008900860089008b0086008b00880088008b008c00840088008d0088008c008d00850084008d008d008c008e007e0085008f007f007e008f0085008d00900090008d008e008f00850090007f008f0091008f00900092008f009200910090008e0093009000930092007f00910094007a007f00940095007a009400950094009600970095009600940091009800960094009800910092009900910099009800970096009a009b0097009a00960098009c009a0096009c009b009a009d009e009b009d009d009a009f009a009c009f009f009c00a0009c009800a1009c00a100a00098009900a100a000a100a2009200a300990092009300a3009900a400a100a100a400a2009900a300a400a3009300a500a400a300a600a300a500a600a200a400a700a400a600a7009300a800a50093008e00a8008e00a900a800a900aa00a800a900ab00aa00a500a800ac00a800aa00ac00a600a500ad00a500ac00ad00ab00ae00aa00ab00af00ae00aa00b000ac00aa00ae00b000af00b100ae00af00b200b100ae00b100b300ae00b300b000b000b300b400ac00b000b500b000b400b500ad00ac00b500b500b400b600b700b500b600ad00b500b700b700b600b800b900ad00b700a600ad00b900a700a600b900b700b800ba00b900b700ba00ba00b800bb00a700b900bc00b900ba00bc00ba00bb00bd00bc00ba00bd00bd00bb00be00a700bc00bf00a200a700bf00c000a200bf00bc00bd00c100bf00bc00c100bd00be00c200c100bd00c200c200be00c300c400c200c300c000bf00c500c500bf00c100c600c000c500c700c200c400c700c100c200c500c100c700c800c700c400c600c500c900c900c500c700c900c700c800ca00c600c900cb00c900c800ca00c900cb00cc00ca00cb00 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 205 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 24 + format: 0 + dimension: 4 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 40 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 9840 + _typelessdata: 4d14cbb2cbcc4cbe7d3fd83200000000000080bf00000000587873bf000000000d389ebe000080bfc32e3a3e00000000134d7e3c6f3c46be10ab433da2b6ab3d936576bfb91e843e0d2974bf7c301cbeba9e84be000080bff3e8223e753d213d267226bd6f3c46be77dbf13cbdc660be936576bff74e233e52816cbf1e301c3e80bdb3be000080bf9274513e753d213dc76ce2bcd82d37be1d36ae3ddb8112bed7e862bf5472e13e587873bf0000000013389ebe000080bfc22e3a3e753da13d6115053dc9362ebe53cccc3d0e5b263e73c459bf73ffff3ed65b74bfb71887bede190ebe000080bf23a30b3e753da13d5436aebdc6362ebe6b247d3df3c3d9be6dc459bfe8369e3e0e925abf9a18873ebfc8e5be000080bf61ba683e753da13ddcfb2cbc183214bebcf00c3e4f5a86bd643e3bbf75c32d3fe0b378bf0829debd5ad857be000080bff2e8223e2edcf13d30ba3e3df1a806be8cc0123e1b026a3e0c522cbf9e0d343f8a5274bf085298bed8d4cf3c000080bfa6bae83d30dcf13d043294bd0c3214be1ec1f03d061ab1be593e3bbfb172163fd4eb68bf132ade3d9d0fcdbe000080bf9274513e30dcf13d9dabf9bdeba806bee164b53daf2919bf01522cbf7d8ede3e90d741bfdd51983e91dd14bf000080bf1900803e30dcf13d413ec23b2bbecdbd25fc303e44aa133c416401bf93e15c3fa2967cbfab2714be457898bd000080bf22a30b3e743d213ebd6a623d662eb7bd86362e3ee5828d3ef2f9e4be24c4593fe97f75bfd0c53ebe28c55a3e000080bf062fba3d753d213e9d5757bd9457d7bd82af253ebf9686bea29606bf761b4f3f587873bf0000000017389ebe000080bfc22e3a3e743d213e0fe2d9bd25becdbd5e9d0b3e07b303bf356401bfce56313f9f8c57bfd427143e1c0d05bf000080bf63ba683e753d213edf3114be5d2eb7bd4f56d73d573e39bfc0f9e4be0196063fe27816bf00000000e41b4fbf000080bf01a38b3e753d213ee24dfe3c47be4dbda5ab433ee426143e0db96fbe641d763f2d307dbf18e282bd6f79083e000080bfa5bae83dc18c493e9d96b23d65be4dbd57fc303e0765e53e54b96fbec3e15c3f3dd463bfce4accbc2d25e93e000080bf44a38b3dc28c493ef36ce2bcc16c62bdabc6423e8eb81dbeaa6f89be916e733f3a047cbfcbb526bd4b0c2fbe000080bff2e8223ec08c493ef92db7bdcb6c62bd79362e3ee25fdebeb26f89beca1d5c3f8c9b65bff9b4263d2575e1be000080bf9274513ec18c493e93257d3d330b18b4c1c6423e2a319e3ea722913ca66e733f707873bf0000000087379e3e000080bfe42eba3d0edc713ec6c1f03d0a11a632c9af253e2679163f00000000b21b4f3f3d074fbf268be33c496a163f000080bf052f3a3d0edc713e4d14cbb2c4c05332cccc4c3e00000000000000000000803fb6e67fbf828ee3bc00000000000080bf22a30b3e0ddc713ef42db73da16c623d7c362e3ee45fde3ea46f893eca1d5c3f8a9b65bfe8b3263d3475e13e000080bf22a38b3dad158d3ee4ba0c3e61be4d3d859d0b3ecea02e3f1ab96f3eec56313f6fbe3abf19fb1b3ee7b52a3f000080bf052fba3cad158d3ee9ba0cbe5dbe4dbd859d0b3ec9a02ebf25b96fbef056313f33c738bfc5e2823d816c30bf000080bf1900803ec28c493ea2257dbdb6f88732c1c6423e2b319ebefc2391bca56e733f6e7873bf0000000087379ebe000080bfc22e3a3e0edc713eeb6ce23c9e6c623dafc6423e9fb81d3e9b6f893e916e733f3c047cbf1fb426bd400c2f3e000080bf84bae83dad158d3e07e2d93d2abecd3d5f9d0b3e04b3033f3664013fd056313fa28c57bff527143e150d053f000080bfc22e3a3d533da13edb31143e5e2eb73d4f56d73d593e393fb6f9e43e0396063fc9ba2bbfca838d3e4d2d303f000080bf00000000533da13e97abf93defa8063ee164b53db429193ffe512c3f758ede3e9dd741bf4152983e64dd143f000080bf052fba3c0265b53e8f57573d9957d73d84af253ec696863e9e96063f771b4f3f567873bf000000001f389e3e000080bfc22eba3d533da13edb31943d2232143e0bc1f03deb19b13e663e3b3faa72163fe1eb68bf8f2ade3d620fcd3e000080bf23a38b3d0265b53e4d36ae3dca362e3e6b247d3df5c3d93e6fc4593fe1369e3e27925abfec18873e2fc8e53e000080bf052f3a3db08cc93efc4dfebc4fbe4d3da5ab433ef32614be06b96f3e641d763f2d307dbf12e282bd7e7908be000080bff3e8223ead158d3ecec1f0bd0a11a632c7af253e247916bf00000000b31b4f3f3f074fbf5c8ae33c476a16bf000080bf62ba683e0edc713ea63ec2bb2fbecd3d25fc303e32aa13bc3d64013f96e15c3fa0967cbfbc2714be5778983d000080bf12a30b3e533da13e186ce23ce52d373e0036ae3da381123ee1e8623f3672e13e587873bf0000000017389e3e000080bfe42eba3db08cc93e1972263d733c463e77dbf13cc4c6603e9365763ffc4e233e5b816cbf3d301c3e4cbdb33e000080bf44a38b3d5fb4dd3e01fb2c3c2332143eb7f00c3e0a5a863d673e3b3f72c32d3fd7b378bf312adebdc9d8573e000080bf84bae83d0265b53e454d7ebc733c463e13ab433da6b6abbd9365763faf1e843e042974bf97301cbef79e843e000080bfa6bae83d5fb4dd3e4d14cbb2cfcc4c3e7d3fd832000000000000803f00000000587873bf0000000011389e3e000080bf062fba3d0edcf13e6d1505bdcb362e3e53cccc3d135b26be75c4593f71ffff3ec25b74bffe1887bee61a0e3e000080bf23a30b3eb08cc93e3dba3ebdf4a8063e8cc0123e27026abe03522c3fa60d343f7f5274bf465298bec3d1cfbc000080bff3e8223e0265b53ecb6a62bd672eb73d86362e3ee4828dbef0f9e43e24c4593f877873bf00000000e8369ebe000080bfc32e3a3e533da13ea596b2bd6abe4d3d57fc303e1065e5be4fb96f3ec1e15c3f73e360bf8fe1823d056ff2be000080bf9274513ead158d3e183cc6bd2abecd3da0c0123efdecffbe3564013fc50d343fc52541bfb526143e85e223bf000080bf62ba683e533da13e3dba3ebdf4a8063e8cc0123e27026abe03522c3fa60d343fe57a49bfc451983e4f5a0abf000080bf9274513e0265b53e516209be7d6c623df8f00c3e27fc2ebf866f893ebac32d3ff32932bf41af263df78837bf000080bf1900803ead158d3e4d2db7bd1a32143e9c56d73d4f71e7be603e3b3f10b5023f2d7d29bf1d28de3d72d63dbf000080bf1800803e0265b53e6d1505bdcb362e3e53cccc3d135b26be75c4593f71ffff3e93cf30bf8118873e925e2cbf000080bf62ba683eb08cc93ee2af25be39c2c3b486c1f03d7f134fbf3d20913cf272163ffc7816bf00000000d11b4fbf000080bf00a38b3e0edc713ef4f00cbe7357d73d7ecccc3d332d30bf8796063fc4ffff3e3a7916bf00000000a51b4fbf000080bf01a38b3e533da13e873194bddc2d373e6556573dd4c6bfbed7e8623f7b558b3e887916bf000000006d1b4fbf000080bf00a38b3eb08cc93e454d7ebc733c463e13ab433da6b6abbd9365763faf1e843e738e1ebfb02f1c3e6a2845bf000080bf1900803e5fb4dd3e5dbd4dbd673c463e7d3fd83294eb8abe8865763f00000000fd830abf33311cbee9b753bf000080bfe845973e5fb4dd3e4d14cbb2cfcc4c3e7d3fd832000000000000803f00000000a07916bf00000000591b4fbf000080bf01a38b3e0edcf13ec756d7bda7362e3e7d3fd8323a9606bf4fc4593f00000000de98dabe991987be866b5dbf000080bfd0e8a23eb08cc93ebbb302be0432143ea156573ded1120bf4b3e3b3f9d558b3e832c00bffe2cdebddada5bbf000080bfe845973e0265b53e0d4e1abeb8a8063e7d3fd832dd513dbfcd512c3f0000000040a58abedb5298bef55e6abf000080bfb98bae3e0265b53efe322abed8bdcd3d38ab433dc9c852bf0e64013ff71e843ea55bc0bef72814be2a566abf000080bfd1e8a23e533da13eb42d37bef52db73d7d3fd8321bf964bf7cf9e43e000000000000000000000000000080bf000080bfa12eba3e533da13e5d7f30be216c623d6436ae3d61555bbf596f893ec172e13e3cfeeebee8b526bdc52862bf000080bfe845973ead158d3ec1ea43bedebd4d3dafdbf13cc18375bfb9b86f3e834f233ee82837be80e282bdf3567bbf000080bfb98bae3ead158d3ed4c642bed9c05332ae247d3d7c7873bf0000000031379e3e93279ebe0f8be3bc716073bf000080bfd0e8a23e0ddc713e5b4530be25be4dbdfe64b53db49f5ebfddb86fbeb48ede3e5260ddbef7e082bdcb4066bf000080bfe845973ec18c493e6d7226be07becdbddedb713d865b51bf256401bfece68c3e71b76fbe562714be791d76bf000080bfd0e8a23e743d213e9dabf9bdeba806bee164b53daf2919bf01522cbf7d8ede3ede5aa3bea75198be7d5b66bf000080bfe845973e30dcf13d45fd41be706c62bdd815053dbbb373bf916f89befee5163ee40711bed9b426bd82347dbf000080bfb88bae3ec08c493ecfcc4cbeb3f887327d3fd832b6f57fbf1c2491bc000000000000000000000000000080bf000080bfa02eba3e0edc713ec1ea43bedebd4d3d94dbf1bcc38375bfabb86f3e744f23bef928373eb4e3823def567bbf000080bf88d1c53ead158d3e2b6209be013214bee215053de3722abf4c3e3bbf02e6163ef545ccbd8429debd82347dbf000080bfb88bae3e2edcf13d5436aebdc6362ebe6b247d3df3c3d9be6dc459bfe8369e3ebde626be7b1887be7a6073bf000080bfd0e8a23e753da13d74362ebe6657d7bd7d3fd8321bc459bf8c9606bf000000000000000000000000000080bf000080bfa02eba3e743d213e45fd41be706c62bdcc1505bdbbb373bf916f89be02e616beee07113e8fb4263d82347dbf000080bf88d1c53ec18c493e7c2db7bdcf2d37be79813934a90cedbed1e862bf000000000000000000000000000080bf000080bfa02eba3e743da13d267226bd6f3c46be77dbf13cbdc660be936576bff74e233e8c2d46bd0c301cbe86b37cbf000080bfb98bae3e753d213d246209be093214bea21505bddc722abf533e3bbfe2e516be1446cc3d1229de3d82347dbf000080bf88d1c53e2edcf13d267226bd6f3c46be5ddbf1bcd7c660be8f6576bf194f23beb32d463d2e301c3e84b37cbf000080bf89d1c53e753d213d4d14cbb2cbcc4cbe7d3fd83200000000000080bf000000000000000000000000000080bf000080bfa12eba3e000000005436aebdc6362ebe59247dbde6c3d9be72c459bfe8369ebe8de6263e8618873e7a6073bf000080bf7074d13e753da13d9dabf9bdeba806bed864b5bdaf2919bf04522cbf768edebeaa5aa33ece51983e815b66bf000080bf5817dd3e30dcf13d6d7226be07becdbdcedb71bd835b51bf2d6401bfe7e68cbe5bb76f3e6827143e791d76bf000080bf7174d13e753d213edf3114be5d2eb7bd4756d7bd5a3e39bfc0f9e4befe9506bfdc78163f00000000e91b4fbf000080bf41bae83e753d213ed4c642bef910a6329c247dbd7c7873bf000000002f379ebe8e279e3e6391e33c6f6073bf000080bf7074d13e0edc713e5b4530be25be4dbdf564b5bdb19f5ebfdab86fbec38edebe5560dd3eb9e1823dca4066bf000080bf5917dd3ec28c493e5d7f30be816c623d3936aebd64555bbf7b6f893e9e72e1be35feee3ec6b8263dc52862bf000080bf5817dd3ead158d3eebaf25beb3f887326ac1f0bd85134fbfeb22913ce87216bff678163f00000000d71b4fbf000080bf40bae83e0edc713ee7ba0cbe5cbe4dbd839d0bbed5a02ebf01b96fbee95631bf2cc7383f34e382bd886c30bf000080bf285df43ec18c493efe322abed8bdcd3d2aab43bdc5c852bf1764013fe81e84beb05bc03e3d29143e27566abf000080bf7074d13e533da13e0d4e1abeb8a8063e7d3fd832dd513dbfcd512c3f0000000041a58a3edc52983ef45e6abf000080bf89d1c53e0265b53ebbb302be0432143e935657bdec1120bf4b3e3b3fa1558bbe852c003ff42cde3ddada5bbf000080bf5817dd3e0265b53ec756d7bda7362e3e7d3fd8323a9606bf4fc4593f00000000e098da3e9b19873e856b5dbf000080bf7074d13eb08cc93ef4f00cbe7357d73d75ccccbd2f2d30bf9196063fbdffffbe3679163f00000000a81b4fbf000080bf40bae83e533da13e536209bec16c623deef00cbe29fc2ebf996f893eb4c32dbfe329323f55b226bd058937bf000080bf285df43ead158d3e873194bddc2d373e535657bdd4c6bfbed7e8623f80558bbe8a79163f000000006a1b4fbf000080bf40bae83eb08cc93e5dbd4dbd673c463e7d3fd83294eb8abe8865763f00000000fd830a3f34311c3ee9b753bf000080bf5817dd3e5fb4dd3e4b2db7bd1932143e9556d7bd4f71e7be613e3b3f0fb502bf2d7d293f2428debd72d63dbf000080bf285df43e0265b53e454d7ebc733c463e06ab43bdaab6abbd9365763fb11e84be738e1e3fb32f1cbe6a2845bf000080bf295df43e5fb4dd3e4d14cbb2cfcc4c3e7d3fd832000000000000803f00000000a079163f00000000591b4fbf000080bf41bae83e0edcf13e6d1505bdcb362e3e4accccbd185b26be76c4593f6affffbe90cf303f7c1887be945e2cbf000080bf0800003fb08cc93e3dba3ebdf4a8063e8ac012be2e026abe07522c3fa30d34bfe37a493fbe5198be535a0abf000080bf7cd1053f0265b53e183cc6bd2abecd3d9ec012bef9ecffbe3964013fc30d34bfbf25413fdc2614be87e223bf000080bf0800003f533da13ecb6a62bd672eb73d84362ebee4828dbee9f9e43e25c459bf8778733f00000000e8369ebe000080bff0a20b3f533da13ecec1f0bdb8c05332c6af25be2b7916bf00000000af1b4fbf39074f3f1a90e3bc4e6a16bf000080bf0800003f0ddc713ea596b2bd6abe4d3d54fc30be1065e5be49b96f3ec1e15cbf6ee3603f53e282bd0e6ff2be000080bf7cd1053fad158d3ef82db7bdcb6c62bd79362ebee85fdebead6f89bec91d5cbf8a9b653f4eb526bd2b75e1be000080bf7cd1053fc08c493ea2257dbdb0f88732bec642be2a319ebe252391bca66e73bf6e78733f0000000087379ebe000080bff0a20b3f0edc713efc4dfebc4fbe4d3da1ab43be0a2714be05b96f3e621d76bf2b307d3f4fe2823d917908be000080bf6474113fad158d3e0fe2d9bd25becdbd5d9d0bbe08b303bf3d6401bfc65631bf9c8c573fe12714be1e0d05bf000080bf0800003f743d213e9dabf9bdeba806bed864b5bdaf2919bf04522cbf768edebe92d7413ff35198be87dd14bf000080bf285df43e30dcf13ddc3194bd153214be1dc1f0bde619b1be663e3bbfab7216bfd6eb683f6829debda60fcdbe000080bf7cd1053f2edcf13d5436aebdc6362ebe59247dbde6c3d9be72c459bfe8369ebe10925a3f911887beb9c8e5be000080bf0800003f753da13d9d5757bd9457d7bd82af25bec69686bea29606bf751b4fbf5478733f0000000025389ebe000080bff0a20b3f743d213ef36ce2bcc16c62bdabc642be7cb81dbea46f89be936e73bf3a047c3f7ab5263d320c2fbe000080bf6474113fc18c493efd6be2bcd72d37be2736aebd9d8112bed7e862bf5d72e1be5878733f0000000015389ebe000080bff0a20b3f753da13d267226bd6f3c46be5ddbf1bcd7c660be8f6576bf194f23be50816c3f28301cbe89bdb3be000080bf7cd1053f753d213dcefa2cbc0c3214bec7f00cbed05986bd5e3e3bbf7cc32dbfe0b3783f8729de3d37d857be000080bf6474113f30dcf13d134d7e3c6f3c46be06ab43bd9fb6ab3d936576bfb61e84be0f29743f77301c3eb49e84be000080bf6474113f753d213d4d14cbb2cbcc4cbe7d3fd83200000000000080bf000000005878733f000000000f389ebe000080bff0a20b3f000000006115053dc9362ebe47ccccbd395b263e75c459bf6cffffbed95b743fb318873e81190ebe000080bfd845173f753da13d30ba3e3df1a806be8ac012be5a026a3e0f522cbf960d34bf8e52743feb51983e56d9cf3c000080bf4c171d3f30dcf13d413ec23b2bbecdbd24fc30bef7ab133c396401bf99e15cbfa4967c3f9327143edb7798bd000080bfd845173f753d213ebd6a623d662eb7bd84362ebee4828d3eebf9e4be24c459bf8978733f00000000e5369e3e000080bfc0e8223f753d213e4d14cbb20411a632cbcc4cbe0000000000000000000080bfb6e67f3f8a8fe33c00000000000080bfd845173f0edc713ee24dfe3c47be4dbda1ab43bef826143e14b96fbe621d76bf2d307d3f52e2823d7d79083e000080bf4c171d3fc28c493e9d6ce23caf6c623dadc642be75b81d3ea36f893e936e73bf3c047c3ff1b4263d230c2f3e000080bf4c171d3fad158d3e6b257d3dc44eb1b3c2c642be23319e3ee122913ca66e73bf7078733f000000007f379e3e000080bfc0e8223f0edc713e9d96b23d65be4dbd54fc30be0365e53e42b96fbec4e15cbf75e3603f0be282bdff6ef23e000080bf34ba283fc18c493ea63ec2bb2fbecd3d24fc30bef2aa13bc3d64013f96e15cbfa0967c3fc927143e4978983d000080bfd845173f533da13e3dba3ebdf4a8063e8ac012be2e026abe07522c3fa30d34bf7f52743f4652983eded1cfbc000080bf6474113f0265b53e01fb2c3c2332143eb5f00cbefd59863d6a3e3b3f6fc32dbfd7b3783f342ade3dc8d8573e000080bf4c171d3f0265b53e6d1505bdcb362e3e4accccbd185b26be76c4593f6affffbec25b743f0019873ee61a0e3e000080bfd845173fb08cc93e8f57573d9957d73d82af25bec496863ea096063f771b4fbf5678733f000000001e389e3e000080bfc0e8223f533da13ee22db73db86c623d7d362ebed85fde3ea46f893ecf1d5cbf8f9b653f3eb426bd2275e13e000080bf34ba283fad158d3e156ce23ce52d373ef735aebda281123ee2e8623f3472e1be5878733f0000000017389e3e000080bfc0e8223fb08cc93e454d7ebc733c463e06ab43bdaab6abbd9365763fb11e84be0429743f99301c3ef59e843e000080bf4c171d3f5fb4dd3edb31943d2232143e07c1f0bded19b13e683e3b3fa77216bfe0eb683f852adebd690fcd3e000080bf34ba283f0265b53e1972263d733c463e5ddbf1bcc6c6603e9365763ffe4e23be5b816c3f3e301cbe4cbdb33e000080bf34ba283f5fb4dd3e4d14cbb2cfcc4c3e7d3fd832000000000000803f000000005878733f0000000011389e3e000080bfc0e8223f0edcf13e4d36ae3dca362e3e59247dbdf5c3d93e6fc4593fe1369ebe26925a3fe91887be36c8e53e000080bfa88b2e3fb08cc93e97abf93defa8063ed864b5bdb429193ffe512c3f738edebe9cd7413f3b5298be69dd143f000080bf1c5d343f0265b53e07e2d93d2abecd3d5c9d0bbe07b3033f3764013fcc5631bf9f8c573ffe2714be170d053f000080bfa88b2e3f533da13edb31143e5e2eb73d4756d7bd593e393fbdf9e43efe9506bfe078163f00000000e51b4f3f000080bf902e3a3f533da13ec6c1f03db8c05332c6af25be2379163f00000000b51b4fbf3f074f3f3f8ee3bc466a163f000080bfa88b2e3f0ddc713ee5ba0c3e65be4d3d839d0bbecda02e3f20b96f3eeb5631bf2fc7383f19e382bd836c303f000080bf1c5d343fad158d3e3a62093eb36c62bd02f10cbe17fc2e3f9d6f89bec4c32dbff229323fd2b226bdf488373f000080bf1c5d343fc08c493edcaf253eaaf887328ac1f0bd80134f3f442391bcef7216bffb78163f00000000d11b4f3f000080bf902e3a3f0edc713e5745303e2abe4d3df564b5bdb49f5e3fc3b86f3ec18edebe5460dd3ea6e1823dca40663f000080bf0400403fad158d3e103cc63d25becdbd9ec012bef1ecff3e416401bfc10d34bfc325413fbc2614be86e2233f000080bfa88b2e3f743d213e30ba3e3df1a806be8ac012be5a026a3e0f522cbf960d34bff07a493f835198be525a0a3f000080bf34ba283f30dcf13d6b2db73d143214be7956d7bd6271e73e643e3bbf02b502bf2e7d293f6627debd74d63d3f000080bf1c5d343f2edcf13d6115053dc9362ebe47ccccbd395b263e75c459bf6cffffbea9cf303f531887be825e2c3f000080bfa88b2e3f753da13df1f00c3e6f57d7bd75ccccbd312d303f8f9606bfc3ffffbe3679163f00000000a81b4f3f000080bf902e3a3f743d213e4b7f303e816c62bd6e36aebd5a555b3f716f89becd72e1be5dfeee3e16b8263dba28623f000080bf0400403fc18c493e9831943dd42d37be3d5657bde8c6bf3ed4e862bf7c558bbe8479163f000000006f1b4f3f000080bf902e3a3f753da13d134d7e3c6f3c46be06ab43bd9fb6ab3d936576bfb61e84be7b8e1e3fb52f1cbe6228453f000080bf1c5d343f753d213dc7b3023ef93114be4c5657bdf911203f473e3bbf7f558bbe6c2c003f172dde3de7da5b3f000080bf0400403f30dcf13d4fbd4d3d653c46be7d3fd83299eb8a3e886576bf00000000f0830a3f2e311c3ef1b7533f000080bf0400403f753d213d4d14cbb2cbcc4cbe7d3fd83200000000000080bf00000000a079163f00000000591b4f3f000080bf902e3a3f00000000be56d73da4362ebe7d3fd8323696063f50c459bf00000000ba98da3e7b19873e946b5d3f000080bf78d1453f753da13d0a4e1a3eb4a806be7d3fd832dd513d3fcd512cbf0000000029a58a3ec052983efc5e6a3f000080bfeca24b3f30dcf13dfb322a3ed3bdcdbd2bab43bdcdc8523f0a6401bfee1e84bea45bc03e1f29143e29566a3f000080bf78d1453f753d213eb02d373ef42db7bd7d3fd8321bf9643f81f9e4be0000000000000000000000000000803f000080bf6074513f753d213ed0c6423ef910a6329c247dbd7a78733f000000003e379ebe9c279e3ec792e33c6d60733f000080bf78d1453f0edc713ebdea433ed9bd4dbd94dbf1bcc183753fa3b86fbea54f23be2c29373eb7e3823ded567b3f000080bfeca24b3fc28c493e41fd413e6f6c623dd01505bdbdb3733f8e6f893ef4e516beca07113ec0b5263d82347d3f000080bfeca24b3fad158d3ecbcc4c3ee1d11634f303d133b6f57f3f3e25913c0000000000000000000000000000803f000080bf6074513f0edc713ebdea433ed9bd4dbdafdbf13cc183753fadb86fbe9a4f233e1c2937be8de382bded567b3f000080bfd445573fc18c493e6a72263e0bbecd3dcedb71bd855b513f2c64013fe2e68cbe3db76f3e7f27143e7a1d763f000080bf78d1453f533da13e97abf93defa8063ed864b5bdb429193ffe512c3f738edebe885aa33eeb51983e825b663f000080bf0400403f0265b53e1a62093e0f32143eb01505bddc722a3f533e3b3fd8e516be2e45cc3dce29de3d84347d3f000080bfeca24b3f0265b53e4d36ae3dca362e3e59247dbdf5c3d93e6fc4593fe1369ebec1e5263eb218873e7c60733f000080bf78d1453fb08cc93e70362e3e6b57d73d7d3fd83219c4593f9096063f0000000000000000000000000000803f000080bf6074513f533da13e3cfd413e936c623dea15053db9b3733f996f893e05e6163ee90711be21b526bd82347d3f000080bfd445573fad158d3e582db73ddb2d373e7d3fd8329f0ced3ed3e8623f0000000000000000000000000000803f000080bf6074513fb08cc93e1972263d733c463e5ddbf1bcc6c6603e9365763ffe4e23be372c463d2a301c3e86b37c3f000080bfeca24b3f5fb4dd3e1a62093e0f32143ebc15053ddc722a3f553e3b3fd5e5163e2745ccbdc629debd84347d3f000080bfd445573f0265b53e1972263d733c463e77dbf13cc4c6603e9365763ffc4e233e322c46bd26301cbe86b37c3f000080bfd445573f5fb4dd3e4d14cbb2cfcc4c3e7d3fd832000000000000803f0000000000000000000000000000803f000080bf6074513f0edcf13e4d36ae3dca362e3e6b247d3df5c3d93e6fc4593fe1369e3ec2e526beb21887be7c60733f000080bf48175d3fb08cc93e97abf93defa8063ee164b53db429193ffe512c3f758ede3e8a5aa3beeb5198be825b663f000080bfbce8623f0265b53e6a72263e0bbecd3ddedb713d835b513f2e64013fe4e68c3e31b76fbe982714be7a1d763f000080bf48175d3f533da13edb31143e5e2eb73d4f56d73d593e393fb6f9e43e0396063f4ec2ffbe25c53ebe4995583f000080bf30ba683f533da13e5745303e2abe4d3dfe64b53db29f5e3fbdb86f3ec68ede3e5160ddbe26e282bdca40663f000080bfbce8623fad158d3ee4ba0c3e61be4d3d859d0b3ecea02e3f1ab96f3eec56313f164535bfab46ccbcdca7343f000080bfa48b6e3fad158d3ed0c6423ed9c05332ae247d3d7a78733f000000003d379e3e9c279ebe8293e3bc6b60733f000080bf48175d3f0ddc713edcaf253ebbf887328ec1f03d7d134f3fd12291bcf172163ffc7816bf00000000d01b4f3f000080bf30ba683f0edc713ec6c1f03d0a11a632c9af253e2679163f00000000b21b4f3f3c074fbf388fe33c496a163f000080bf185d743f0edc713e4d7f303e816c62bd7836ae3d5a555b3f716f89becd72e13e5ffeeebe69b826bdba28623f000080bfbce8623fc08c493e3b62093eb36c62bd04f10c3e15fc2e3f9c6f89bec7c32d3ff62932bf81b2263df188373f000080bfa48b6e3fc18c493e9d96b23d65be4dbd57fc303e0765e53e54b96fbec3e15c3feb0f5cbfd5fa1b3e39b4f93e000080bf8c2e7a3fc28c493efb322a3ed3bdcdbd38ab433dcbc8523f0b6401bfe71e843e995bc0be112914be2c566a3f000080bf48175d3f743d213e0a4e1a3eb4a806be7d3fd832dd513d3fcd512cbf000000000ba58abea25298be065f6a3f000080bfd445573f30dcf13df1f00c3e6f57d7bd7dcccc3d312d303f8d9606bfc4ffff3e377916bf00000000a81b4f3f000080bf30ba683f743d213e103cc63d25becdbda0c0123ef1ecff3e396401bfc70d343fcc2541bf9e26143e7de2233f000080bf185d743f753d213ebd6a623d662eb7bd86362e3ee5828d3ef2f9e4be24c4593f379f5cbf49838d3e10c4d93e000080bf0000803f753d213e30ba3e3df1a806be8cc0123e1b026a3e0c522cbf9e0d343f0f7b49bf5a51983e305a0a3f000080bf8c2e7a3f30dcf13dc5b3023ef63114be8b56573df611203f483e3bbf8d558b3e5d2c00bf3f2cdebdf3da5b3f000080bfbce8623f2edcf13dbe56d73da4362ebe7d3fd8323696063f50c459bf000000006498dabe471987beb26b5d3f000080bf48175d3f753da13d692db73d063214bea756d73d6471e73e573e3bbf13b5023f437d29bf2c27de3d61d63d3f000080bfa48b6e3f30dcf13d6115053dc9362ebe53cccc3d0e5b263e73c459bf73ffff3ed9cf30bf2c18873e5c5e2c3f000080bf185d743f753da13d9b31943dcd2d37beaf56573df4c6bf3ecce862bf9c558b3e847916bf000000006f1b4f3f000080bf30ba683f753da13d4fbd4d3d653c46be7d3fd83299eb8a3e886576bf00000000e0830abf1a311cbefeb7533f000080bfbce8623f753d213d134d7e3c6f3c46be10ab433da2b6ab3d936576bfb91e843e8c8e1ebfa12f1c3e5528453f000080bfa48b6e3f753d213d4d14cbb2cbcc4cbe7d3fd83200000000000080bf00000000a07916bf00000000591b4f3f000080bf30ba683f00000000 + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: -0.000000029802322, y: 0.000000029802322, z: 0.000000007450581} + m_Extent: {x: 0.2, y: 0.2, z: 0.19999999} + m_MeshUsageFlags: 0 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + m_MeshMetrics[0]: 1.8829471 + m_MeshMetrics[1]: 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: +--- !u!1 &535679136 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -6076,72 +4909,232 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 844459427} - - component: {fileID: 844459430} - - component: {fileID: 844459429} - - component: {fileID: 844459428} + - component: {fileID: 535679137} + - component: {fileID: 535679138} m_Layer: 0 - m_Name: TargetCollider + m_Name: TransformerEnabled m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &844459427 + m_IsActive: 0 +--- !u!4 &535679137 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 844459426} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 3, z: 0.36999983} + m_GameObject: {fileID: 535679136} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 660021080} - m_RootOrder: 2 + m_Children: + - {fileID: 1507460097} + m_Father: {fileID: 1192304054} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &844459428 +--- !u!114 &535679138 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 844459426} + m_GameObject: {fileID: 535679136} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 94f0bf7ce367d3942a1f56ec8dd56e41, type: 3} + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!114 &844459429 -MonoBehaviour: + serializedGuid: + serializedGuid: 0b02258065237248bdd586d9a5633b28 + uniqueName: TransformerEnabled + tags: [] +--- !u!21 &539108941 +Material: + serializedVersion: 8 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 844459426} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: TargetCollider - tags: [] ---- !u!65 &844459430 -BoxCollider: + m_Name: Standard + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ValidKeywords: + - _ALPHAPREMULTIPLY_ON + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + 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_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 3 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 0 + m_Colors: + - _Color: {r: 0.4, g: 0.5882353, b: 1, a: 0.19607843} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] +--- !u!1001 &561255719 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 248065651} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7511558181221131132, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 1862d8e21d2bba649b255c6a7eb4eb61, type: 2} + - target: {fileID: 919132149155446097, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + propertyPath: m_Name + value: MagicSphere + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} +--- !u!4 &561255720 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + m_PrefabInstance: {fileID: 561255719} + m_PrefabAsset: {fileID: 0} +--- !u!1 &561255721 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + m_PrefabInstance: {fileID: 561255719} + m_PrefabAsset: {fileID: 0} +--- !u!135 &561255722 +SphereCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 844459426} + m_GameObject: {fileID: 561255721} m_Material: {fileID: 0} - m_IsTrigger: 1 + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.2 + m_Center: {x: -0.000000029802322, y: 0.000000029802322, z: 0.000000007450581} +--- !u!114 &561255723 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 561255721} m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 0.35, y: 0.1, z: 0.35} - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &853416177 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} + m_Name: + m_EditorClassIdentifier: + serializedGuid: + serializedGuid: d67820fd904d9f46873f098e03179ac0 + uniqueName: Sphere + tags: [] +--- !u!1 &576643108 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -6149,226 +5142,157 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 853416178} - - component: {fileID: 853416181} - - component: {fileID: 853416179} - - component: {fileID: 853416180} - m_Layer: 8 - m_Name: Stair 1 Teleportation Area + - component: {fileID: 576643109} + - component: {fileID: 576643110} + m_Layer: 0 + m_Name: Collider (2) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &853416178 + m_IsActive: 1 +--- !u!4 &576643109 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 853416177} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.4, z: 1.8} - m_LocalScale: {x: 0.04, y: 1, z: 0.04} + m_GameObject: {fileID: 576643108} + m_LocalRotation: {x: -0.27059805, y: -0.27059805, z: 0.6532815, w: 0.6532815} + m_LocalPosition: {x: -0.1617, y: 0, z: 0.17999974} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 33704422} + m_Father: {fileID: 660021081} m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &853416179 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 853416177} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: Stair 1 Teleportation Area - tags: [] ---- !u!114 &853416180 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 853416177} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: db00376f7b7d66e4da00d63492cb7971, type: 3} - m_Name: - m_EditorClassIdentifier: - m_InteractionManager: {fileID: 0} - m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_InteractionLayers: - m_Bits: 256 - m_DistanceCalculationMode: 1 - m_SelectMode: 1 - m_FocusMode: 1 - m_CustomReticle: {fileID: 3819676577015031517, guid: c9ea54082e6151843acb776fb52ed6f7, type: 3} - m_AllowGazeInteraction: 0 - m_AllowGazeSelect: 0 - m_OverrideGazeTimeToSelect: 0 - m_GazeTimeToSelect: 0.5 - m_OverrideTimeToAutoDeselectGaze: 0 - m_TimeToAutoDeselectGaze: 3 - m_AllowGazeAssistance: 0 - m_FirstHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_LastHoverExited: - m_PersistentCalls: - m_Calls: [] - m_HoverEntered: - m_PersistentCalls: - m_Calls: [] - m_HoverExited: - m_PersistentCalls: - m_Calls: [] - m_FirstSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_LastSelectExited: - m_PersistentCalls: - m_Calls: [] - m_SelectEntered: - m_PersistentCalls: - m_Calls: [] - m_SelectExited: - m_PersistentCalls: - m_Calls: [] - m_FirstFocusEntered: - m_PersistentCalls: - m_Calls: [] - m_LastFocusExited: - m_PersistentCalls: - m_Calls: [] - m_FocusEntered: - m_PersistentCalls: - m_Calls: [] - m_FocusExited: - m_PersistentCalls: - m_Calls: [] - m_Activated: - m_PersistentCalls: - m_Calls: [] - m_Deactivated: - m_PersistentCalls: - m_Calls: [] - m_StartingHoverFilters: [] - m_StartingSelectFilters: [] - m_StartingInteractionStrengthFilters: [] - m_OnFirstHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_OnLastHoverExited: - m_PersistentCalls: - m_Calls: [] - m_OnHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_OnHoverExited: - m_PersistentCalls: - m_Calls: [] - m_OnSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_OnSelectExited: - m_PersistentCalls: - m_Calls: [] - m_OnSelectCanceled: - m_PersistentCalls: - m_Calls: [] - m_OnActivate: - m_PersistentCalls: - m_Calls: [] - m_OnDeactivate: - m_PersistentCalls: - m_Calls: [] - m_TeleportationProvider: {fileID: 0} - m_MatchOrientation: 0 - m_MatchDirectionalInput: 0 - m_TeleportTrigger: 3 - m_FilterSelectionByHitNormal: 0 - m_UpNormalToleranceDegrees: 30 - m_Teleporting: - m_PersistentCalls: - m_Calls: [] ---- !u!64 &853416181 -MeshCollider: + m_LocalEulerAnglesHint: {x: 0, y: -45, z: 90} +--- !u!136 &576643110 +CapsuleCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 853416177} + m_GameObject: {fileID: 576643108} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 4 - m_Convex: 0 - m_CookingOptions: 30 - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &861048854 -GameObject: + m_Radius: 0.02 + m_Height: 0.2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1001 &586564669 +PrefabInstance: m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 861048855} - - component: {fileID: 861048858} - - component: {fileID: 861048856} - - component: {fileID: 861048857} - m_Layer: 8 - m_Name: Stair 2 Teleportation Area - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &861048855 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 813701130} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + propertyPath: m_Name + value: Podium Teleportation Area + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + propertyPath: m_Layer + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: -7511558181221131132, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} +--- !u!4 &586564670 stripped Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + m_PrefabInstance: {fileID: 586564669} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 861048854} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.8, z: 2.2} - m_LocalScale: {x: 0.04, y: 1, z: 0.04} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 33704422} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &861048856 +--- !u!1 &586564671 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} + m_PrefabInstance: {fileID: 586564669} + m_PrefabAsset: {fileID: 0} +--- !u!114 &586564672 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 861048854} + m_GameObject: {fileID: 586564671} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: - uniqueName: Stair 2 Teleportation Area + serializedGuid: + serializedGuid: b1b2d19d99f7c74a9759a753b5c92766 + uniqueName: Podium Teleportation Area tags: [] ---- !u!114 &861048857 +--- !u!64 &586564674 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 586564671} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: -3071651571934779511, guid: 67cd907787fe7884e9ee9dfbe4e68f5a, type: 3} +--- !u!114 &586564675 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 861048854} + m_GameObject: {fileID: 586564671} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: db00376f7b7d66e4da00d63492cb7971, type: 3} @@ -6380,7 +5304,7 @@ MonoBehaviour: serializedVersion: 2 m_Bits: 4294967295 m_InteractionLayers: - m_Bits: 256 + m_Bits: 2 m_DistanceCalculationMode: 1 m_SelectMode: 1 m_FocusMode: 1 @@ -6447,211 +5371,33 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_OnHoverExited: - m_PersistentCalls: - m_Calls: [] - m_OnSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_OnSelectExited: - m_PersistentCalls: - m_Calls: [] - m_OnSelectCanceled: - m_PersistentCalls: - m_Calls: [] - m_OnActivate: - m_PersistentCalls: - m_Calls: [] - m_OnDeactivate: - m_PersistentCalls: - m_Calls: [] - m_TeleportationProvider: {fileID: 0} - m_MatchOrientation: 0 - m_MatchDirectionalInput: 0 - m_TeleportTrigger: 3 - m_FilterSelectionByHitNormal: 0 - m_UpNormalToleranceDegrees: 30 - m_Teleporting: - m_PersistentCalls: - m_Calls: [] ---- !u!64 &861048858 -MeshCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 861048854} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 4 - m_Convex: 0 - m_CookingOptions: 30 - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!43 &862649805 -Mesh: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - serializedVersion: 10 - m_SubMeshes: - - serializedVersion: 2 - firstByte: 0 - indexCount: 2532 - topology: 0 - baseVertex: 0 - firstVertex: 0 - vertexCount: 779 - localAABB: - m_Center: {x: 0, y: 0, z: -0.09999999} - m_Extent: {x: 0.19999997, y: 0.19999997, z: 0.09999999} - m_Shapes: - vertices: [] - shapes: [] - channels: [] - fullWeights: [] - m_BindPose: [] - m_BoneNameHashes: - m_RootBoneNameHash: 0 - m_BonesAABB: [] - m_VariableBoneCountWeights: - m_Data: - m_MeshCompression: 0 - m_IsReadable: 0 - m_KeepVertices: 0 - m_KeepIndices: 0 - m_IndexFormat: 0 - m_IndexBuffer: 00000100020003000400050006000700080009000a000b000b000c0009000b000d000c000e000c000d000d000f000e0010000e000f00110010000f001200100011001200110013001400120013001400130015001600140015001600150017001800160017001800170019001a0011000f001b00180019001b0019001c000f001d001a001e001d000f001f001e000f000f0020001f001b001c00210022001b00210023002200210024002300210024002500230021002600240027002800290029002a00270029002b002a0029002c002b002c002d002b002e002a002b002b002f002e002f0030002e00300031002e0032002e00310033003200310033003100340034003500330035003400360037003500360036003800370034003900360034003a00390030003b003c003b003d003c003b003e003d003e003f003d003e0040003f00400041003f0040004200410042004300410042004400430044004500430044004600450046004700450046004800470048004900470048004a00490049004a004b004b004c0049004a004d004b004d004a00480048004e004d0048004f004e0050005100520052005300500052005400530050005300550055005300540054005600550056005700550055005800500055005900580059005a00580059005b005a005b005c005a005c005d005a005c005e005d005e005f005d005e0060005f00600061005f0060006200610062006300610062006400630064003200630065006600670067006600680068006900670066006a0068006a006b0068006b006c0068006b006d006c006b006e006d006e006f006d006f0070006d006f00710070006f00720071007200730071007200740073007400750073007400760075007700760078007800790077007a00780076007a0076007b007b007c007a007d007a007c007d007c007e007e007f007d007d007f008000800081007d0080008200810082008300810082008400830084008500830083008600810086008700810085008800830088008900830085008a0088008a008b0088008b008c0088008b008d008c008d008e008c008e008f008c008d0090008e00900091008e0091009000920093008e0091009100940093009500960097009700980095009800990095009a009900980098009b009a009b009c009a009b009d009c009d009e009c009d009f009e009b00a0009d009b00a100a0009d00a2009f009d00a300a200a200a4009f00a200a500a400a200a600a500a600a700a500a600a800a700a600a900a800a800aa00a700a800ab00aa00ac00aa00ab00ad00a700aa00aa00ae00ad00af00b000b100b100b200af00b200b300af00b200b400b300b400b500b300b400b600b500b700b800b900ba00bb00bc00bd00be00bf00c000c100c200c300c400c500c600c700c800c900ca00cb00cc00cd00ce00cf00d000d100cf00d100d200d200d300cf00d300d200d400d300d400d500d500d400d600d500d600d700d500d700d800d900cf00d300d500d900d300da00d500d800da00d800db00db00dc00da00db00dd00dc00db00de00dd00d500da00df00da00e000df00d500df00e100d500e100d900d900e200cf00cf00e200e300e400e200d900e100e400d900e400e500e200e600e100df00e100e600e400e600df00e700e800e600e700e800e900e600e400e600e900e900e800ea00e900ea00eb00ec00e900eb00e500e400ed00e400e900ed00ec00ed00e900e500ed00ee00ed00ec00ef00ed00ef00ee00f000f100f200f000f300f100f300f000f400f500f300f400f400f000f600f400f600f700f400f800f500f400f700f900fa00f800f400f400f900fa00fa00fb00f800f900fc00fa00fb00fa00fc00f900fd00fc00fe00fb00fc00ff00fe00fc000001ff00fc00fc00fd00010102010001fc000301fc000101fc000301020103010101040105010301040106010201030105010701030106010301070108010601070108010701090109010a0108010b010a0109010b0109010c010d010e010f010d010f01100111010d011001110112010d01110113011201110114011301150113011401160115011401170111011001170114011101180110010f01170110011801160114011901170119011401160119011a0116011a011b01190117011c0119011c011a0118011c0117011c011d011a0118010f011e011e010f011f011e011f01200121011e012001220118011e01210122011e01180123011c012201230118012101240122012301220124012101250124011c0126011d0126011c0123012301240127012601230127012701240128012701280129012a01270129012a01260127012a011d0126012a012b011d012c012d012e012c012e012f0130012c012f01300131012c01300132013101300133013201340133013001340130012f0134013501330136012f012e0134012f01360136012e01370136013701380139013501340139013a0135013b0134013601360138013b013b01390134013b0138013c013d013c0138013d013e013c013c013e013f0140013c013f013b013c0140013b01410139013b014001410140014201410140014301420140013f014301390141014401390144013a014201440141013a01440145013a014501460144014701450142014701440148014701420149014801420142014a0149014b014a0142014b01420143014b0143013f014c014b013f014d014c013f014e014d013f014f014e013f013f0150014f0151015201530153015401510151015401550151015501560151015601570156015501580158015901560158015a0159015a015b0159015a015c015b015d015e015f015f0160015d01600161015d0160016201610160016301620162016301640164016501620165016401660165016601670165016701680165016801690169016a01650169016b016a0169016c016b016b016c016d016e016b016d016d016f016e016f0170016e01700171016e016f0172017001700172017301730174017001730175017401730176017501770178017901770179017a017b0177017a017b017c0177017b017d017c017b017e017d017f017d017e0180017f017e0181017b017a0181017e017b0182017a01790181017a01820180017e018301810183017e01800183018401800184018501830181018601830186018401820186018101860187018401820179018801880179018901880189018a018b0188018a018c01820188018b018c01880182018d0186018c018d0182018b018e018c018d018c018e018b018f018e01860190018701900186018d018d018e01910190018d01910191018e0192019101920193019401910193019401900191019401870190019401950187019601970198019601980199019a01960199019a019b0196019a019c019b019a019d019c019e019d019a019e019a0199019e019f019d01a001990198019e019901a001a0019801a101a001a101a201a3019f019e01a301a4019f01a5019e01a001a001a201a501a501a3019e01a501a201a601a701a601a201a701a801a601a601a801a901a501a601aa01aa01a601a901a501ab01a301a501aa01ab01a301ac01a401a301ab01ac01aa01ad01ab01ad01ac01ab01a401ac01ae01a401ae01af01ac01b001ae01ad01b001ac01aa01a901b101aa01b101ad01b201b001ad01b101b201ad01b201b301b001b101b401b201b401b101a901b401a901b501b601b701b801b901b601b801b801ba01b901bb01b901ba01bb01bc01b901bd01bc01bb01be01bd01bb01bf01be01bb01bb01c001bf01c101bf01c001c001c201c101c301c001bb01ba01c301bb01ba01b801c401b801c501c401ba01c401c601ba01c601c301c301c701c001c001c701c801c901c701c301c601c901c301c901ca01c701cb01c601c401c601cb01c901cb01c401cc01cd01cb01cc01cd01ce01cb01c901cb01ce01c901ce01cf01cf01ca01c901cf01d001ca01d101d201d301d101d301d401d501d101d401d501d601d101d501d701d601d501d801d701d401d901d501d801d501d901d401da01d901da01d401d301d901db01d801d301dc01da01dd01dc01d301dd01d301de01df01d801db01db01e001df01e001e101df01e101e201df01e201e301df01e401df01e301e401e301e501e201e601e301e301e701e501e801e301e601e301e801e701e601e901e801e801ea01e701e901eb01e801e801ec01ea01e801eb01ec01ed01ee01ef01ed01ef01f001ed01f001f101ed01f101f201f101f301f201f101f401f301f001ef01f501f501f601f001f601f101f001ef01f701f501f801f701ef01f801f901f701f601fa01f101f101fa01fb01f101fb01fc01f101fc01fd01f401f101fd01f401fd01fe01fe01ff01f401fe010002ff01fe01010200020202f401ff0100020202ff0102020302f401000204020202000205020402000206020502060200020102010207020602080209020a020a020b0208020b020a020c020c020a020d020e0208020b020e020f0208020f020e021002100211020f0212020e020b02120210020e020b020c02130212020b021302100214021102140215021102140216021502140217021602180217021402180214021902180219021a021a021b0218021a021c021b021d0213020c021d020c021e021d021e021f021d021f022002210213021d0221021d022002210212021302210220022202220223022102220224022302210223022502210225021202120225021002250226021002270228022902270229022a022b0227022a022b022c0227022b022d022c022b022e022d022f022d022e0230022f022e0231022b022a0231022e022b0232022a02290231022a02320230022e023302310233022e02300233023402300234023502330231023602330236023402320236023102360237023402320229023802380229023902380239023a023b0238023a023c02320238023b023c02380232023d0236023c023d0232023b023e023c023d023c023e023b023f023e02360240023702400236023d023d023e02410240023d02410241023e0242024102420243024402410243024402400241024402370240024402450237024602470248024602480249024a024602490249024b024a024c024a024b024c024b024d024c024d024e024f024e024d024f0250024e024e0251024c024e02500252024e025302510253024e025202530254025102530255025402530256025502570256025302530252025802590258025202590252025a02580259025b02530258025c0258025b025c02570253025d0253025c025d0257025d025e025c025e025d025e025f0257025e0260025f02610260025e0261025e0262025e02630262025c0263025e025b0263025c025b0264026302650266026702650267026802650268026902650269026a026a0269026b026a026b026c026d026b02690268026d026902680267026e0267026f026e0268026e027002680270026d026d0271026b026b0271027202730271026d02700273026d02730274027102750270026e0270027502730275026e02760277027502760277027802750273027502780273027802790279027402730279027a0274027b027c027d027b027d027e027b027e027f027b027f0280027f02810280027f02820281027e027d028302830284027e0284027f027e02840285027f027f028502860282027f0286028602870282028702880282028702890288027d028a0283027d028b028a028b027d028c028c027d028d028c028d028e028c028f028b028c028e02900291028f028c028c0290029102910292028f0290029302910292029102930290029402930295029202930293029402960293029702950296029702930296029802970299029a029b029c029a0299029d029a029c029d029e029a029e029d029f029e029f02a0029f02a102a0029f02a202a102a2029f02a3029d02a3029f02a202a302a402a302a502a402a302a602a502a602a302a7029d02a702a302a602a702a802a702a902a802aa02a7029d02aa029d029c02a702aa02a902ab02aa029c02ab02a902aa02ab029c02ac029c029902ac02ab02ad02a902ad02ae02a902af02ad02ab02af02ab02ac02af02b002ad02b102ac029902af02ac02b102b1029902b202b102b202b302b102b302b402af02b102b402af02b402b502b502b002af02b502b602b002b702b802b902ba02b702b902b902bb02ba02bc02ba02bb02bb02b902bd02bb02bd02be02bc02bf02ba02bb02be02c002bb02c002bc02c102bf02bc02c202c102bc02c302c202bc02c002c402bc02bc02c402c302c002c502c402c602c302c402c402c702c602c802c602c702c802c702c902c802c902ca02ca02cb02c802cc02ca02c902cc02cd02ca02ce02cb02ca02ca02cd02cf02ce02ca02cf02d002ce02cf02d102d002cf02cf02d202d102d302d402d502d302d502d602d702d302d602d702d802d302d702d902d802d702da02d902db02d902da02dc02db02da02dd02d702d602dd02da02d702de02d602d502dd02d602de02dc02da02df02dd02df02da02dc02df02e002dc02e002e102df02dd02e202df02e202e002de02e202dd02e202e302e002de02d502e402e402d502e502e402e502e602e702e402e602e802de02e402e702e802e402de02e902e202e802e902de02e702ea02e802e902e802ea02e702eb02ea02e202ec02e302ec02e202e902e902ea02ed02ec02e902ed02ed02ea02ee02ed02ee02ef02f002ed02ef02f002ec02ed02f002e302ec02f002f102e302f202f302f402f202f402f502f202f502f602f202f602f702f702f602f802f702f802f902fa02f802f602f502fa02f602f502f402fb02f402fc02fb02f502fb02fd02f502fd02fa02fe02fd02fb02fe02fa02fd02fb02ff02fe02fe020003fa02fa020103f8020103fa020003f80201030203000303030103040301030303030305030403050306030403060307030403070308030403040308030903040309030a03 - m_VertexData: - serializedVersion: 3 - m_VertexCount: 779 - m_Channels: - - stream: 0 - offset: 0 - format: 0 - dimension: 3 - - stream: 0 - offset: 12 - format: 0 - dimension: 3 - - stream: 0 - offset: 24 - format: 0 - dimension: 4 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 40 - format: 0 - dimension: 2 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - m_DataSize: 37392 - _typelessdata: 77562f3bcecc4cbd0ad723be000000000000803f00000000000000000000803f00000000000080bf0b98ec3e00ab133f54562f3b989919be0ad723be000000000000803f000000000000803f0000000000000000000080bf5005083f5a07023f54562f3bcecc4c3d0ad723be000000000000803f000000000000803f0000000000000000000080bf7325c93ea64e253f6b562fbbcccc4c3d0ad723be000000000000803f00000000000000000000803f000000000000803f3242c73ede5b243f60562fbb9999193e0ad723be000000000000803f00000000000080bf00000000000000000000803f9bcfa33e84ff353f60562fbbcecc4cbd0ad723be000000000000803f00000000000080bf00000000000000000000803fcab4ea3e37b8123fcecc4c3d0ad723be5d562fbb000000000000803f00000000000000000000803f00000000000080bf4247a33ef3efa83e999919be0ad723be5d562fbb000000000000803f00000000000000000000803f00000000000080bf0ae0a63e36e2ef3ececc4cbd0ad723be6d562fbb000000000000803f00000000eea07ebf00000000e8b2d3bd000080bfa613a53e1469cc3e235b21be235b213e37b088bb54e524bf496a423f4a4bbbbdb877acbcc9b6d03d2f9c7e3f000080bfdd683c3e6d37253f0ad723bec33d1f3e6eca8abb267f73bfeaeb9c3e9a2c17bd1663ecbbcb97c73d50c67e3f000080bfb6443c3eeff3253f0ad723be78c31f3e000000001b807dbff0b80d3e248888bcec4b3bbb5386cb3d50bb7e3f000080bf6085403ef8ec253f27731ebe0ad7233e639e83bbf8b9babecaff6d3f341754bdaf66afbb69335b3d25a17f3f000080bfa2a73c3ec05a243fa7081fbe0ad7233e00000000b1527bbd08827f3f2bbb0ebce17549bb5be70b3c4efd7f3f000080bf6aab403e6f80243f999919be0ad7233e74562fbb000000000000803f000000006f0b473c000000002afb7f3f000080bfd4fe3d3e753b233f672c1d3e0ad7233e00000000668ee83d1c587e3f000000002639873c8047f7baf4f67f3f000080bf6aab403eb228b63ecccc4cbd0ad7233e74562fbb000000000000803f000000004015473c000000002afb7f3f000080bfd4fe3d3e91740b3fcbcc4c3d0ad7233e74562fbb000000000000803f000000005ce4463c000000002cfb7f3f000080bfd4fe3d3e5a5be73e07d723bd0ad7233e0e77b4bb000000000000803f000000009424473c000000002afb7f3f000080bf342a3b3ec811093f06d7233d0ad7233e0e77b4bb000000000000803f000000004202473c000000002afb7f3f000080bf342a3b3e8b18ec3e54b0d0bc0ad7233e3ae719bc000000000000803f00000000610c473c000000002afb7f3f000080bfd247373ec59a053f54b0d03c0ad7233e3ae719bc000000000000803f00000000a833473c0000000028fb7f3f000080bfd247373e11fbf23e2de719bc0ad7233e5cb0d0bc000000000000803f000000005c17473c000000002afb7f3f000080bffc34273e07bc013f23e7193c0ad7233e5cb0d0bc000000000000803f000000003814473c000000002afb7f3f000080bffc34273ef888fa3efd76b4bb0ad7233e07d723bd000000000000803f00000000e20b473c000000002afb7f3f000080bf49b0183ebdc4003ff376b43b0ad7233e07d723bd000000000000803f000000000b0c473c000000002afb7f3f000080bf49b0183e934cfc3e9999193e0ad7233e74562fbb000000000000803f0000000010f6463c000000002cfb7f3f000080bfd4fe3d3e92cdb73e66562fbb0ad7233ececc4cbd000000000000803f00000000f510473c000000002afb7f3f000080bf80b10e3ef810003f59562f3b0ad7233ececc4cbd000000000000803f000000008c16473c000000002afb7f3f000080bf80b10e3e8896fd3e672c1d3e0ad7233eb01a70bbee55fd3e5f775e3f00000000a6048b3ced4e1ebc81f37f3f000080bff5013d3e4723b63ef558203ef558203e62d46dbb67733d3fec2c2c3f000000004cff9a3c8a8caabc11e67f3f000080bf3eea3c3e1531b53e0ad7233e2b811c3e1cfb63bbe3ad543f8f7d0e3f00000000f9b77d3c3159bdbca3e67f3f000080bfd5ec3c3ec126b43e0ad7233e2b811c3e00000000b2887d3f46ca0d3e00000000f9d7523b0b81bcbc4fee7f3f000080bff666403ee62bb43e74562f3b0ad7233e989919be000000000000803f000000008615473c000000002afb7f3f000080bfb0f62a3d9a02fd3e66562fbb0ad7233e999919be000000000000803f00000000b421473c000000002afb7f3f000080bfb0f62a3d018eff3e9e7289bb0ad7233ed4171fbed13ca5bc263d7e3f793aecbdf7aad0bd5ddde63d03077d3f000080bf3484153d801f003f628091b90ad7233e64cb1fbe72db2cbd8d8c643f0da6e5bea064d2bcfa47e53e4acd643f000080bf20c7123d2461fe3e24678bbbcde5223ef83220be5015b0bddfd72e3f0fb139bf4d974fbe9069333f16152f3f000080bf880f113d9034003fa9ec933b0ad7233ec73f20be0ec12cbd5daf633fbb0ee9be291402bcdf1ae93e72eb633f000080bfb000113d2319fc3e6fe889bbdb6c213edb6c21be72ac91bd2c0f233f828244bfb02a173fe1e417bfb60b0cbf000080bfad8fa03e0713373f24678bbbcde5223ef83220be5015b0bddfd72e3f0fb139bf9421163f3dca0dbf414d17bf000080bf1209a03ee451373f628091b90ad7233e64cb1fbe72db2cbd8d8c643f0da6e5bebe721b3f03ccaabed89a38bf000080bfb61ca13ee22f383f606284bbca881e3e0ad723bef1d71abdc954ad3e81b070bfc0a02c3f968a2fbf1d4c8cbe000080bf169fa13e329b363fdb078d3b0a7d1f3e0ad723bee4b63fbd7e9bd63efb1d68bf58fe293f5b402abf81f5aebe000080bf1a3ca43edc3f383fa9ec933b0ad7233ec73f20be0ec12cbd5daf633fbb0ee9bef9371b3f24bcadbeaa1c38bf000080bf79cda23e4d09393f33d2913bcddf213eccdf21bebebb91bd1f0f233f5f8244bf554b173f15d017bf03ff0bbf000080bfe175a33eb3af383f60562fbb9999193e0ad723be0000000000000000000080bf0f96343f947335bf00000000000080bf9bcfa33e84ff353f77562f3b9999193e0ad723be0000000000000000000080bf0a96343f987335bf00000000000080bfdcb2a53e4df2363f54562f3bcecc4c3d0ad723be0000000000000000000080bf8495343f207435bf00000000000080bf7325c93ea64e253f54562f3b989919be0ad723be0000000000000000000080bf1596343f8f7335bf00000000000080bf5005083f5a07023f60562fbbcecc4cbd0ad723be0000000000000000000080bfdf95343fc27335bf00000000000080bfcab4ea3e37b8123f6b562fbb999919be0ad723be0000000000000000000080bf1396343f917335bf00000000000080bfb013073f9114013f5062843bc9881ebe0ad723be76a3293d53e4bdbe68816dbfa2622c3fc4f52cbf48ad993e000080bf931d093fac6b013fc3078dbb097d1fbe0ad723be97b1233d003db7be22d36ebf019d2a3f67a32fbf4860953e000080bf11cf073f058eff3e16c890390ad723be6ccb1fbe86e02a3deb3b65bfaeece2bedbaa1b3f9690a8becbee383f000080bfb45e093fd9adff3e1cd291bbcddf21beccdf21be1eab913d010f23bfaa8244bf542b173faee417bf3b0b0c3f000080bf2e32083f56aefe3e93ec93bb0ad723bec73f20be191cdc3c59e774bf677894befac2233fc56953bebc893d3f000080bf6286083f22fbfd3e05678b3bb9e522be073320be14319f3dda5928bff7d33fbfe4b2163fe38913bf511d113f000080bf92e8093ffdb4003f65e8893bda6c21bedb6c21be37c3913dec0e23bf738244bff001173fbffc17bfc51d0c3f000080bf48a5093fd7f3003feb76b43b0ad7233d0ad723be0000000000000000000080bf9095343f117435bf00000000000080bfaab0cd3e940b243f77562f3bcecc4cbd0ad723be0000000000000000000080bff695343fac7335bf00000000000080bf0b98ec3e00ab133f1877b43b06d723bd0ad723be0000000000000000000080bfff95343fa47335bf00000000000080bf570cea3e0fef153f21e7193c57b0d03c0ad723be0000000000000000000080bf0e96343f947335bf00000000000080bfbf35d43efe2b223f3ae7193c5cb0d0bc0ad723be0000000000000000000080bfb295343ff17335bf00000000000080bf3345e63e4c2f193f54b0d03c2de7193c0ad723be0000000000000000000080bffc95343fa87335bf00000000000080bf6495df3e792f223f5cb0d03c3ae719bc0ad723be0000000000000000000080bfea95343fb87335bf00000000000080bf3d3ee63e1fdf1e3f04d7233d0677b43b0ad723be0000000000000000000080bf1096343f927335bf00000000000080bfde15e63e0b13243f07d7233d0e77b4bb0ad723be0000000000000000000080bf1f96343f837335bf00000000000080bf68fde93ea821223fcbcc4c3d6b562f3b0ad723be0000000000000000000080bfdf95343fc47335bf00000000000080bffc9dea3ee558253fcecc4c3d6d562fbb0ad723be0000000000000000000080bfc195343fe17335bf00000000000080bf8e83ec3e4567243f9899193e60562f3b0ad723be0000000000000000000080bfd795343fcb7335bf00000000000080bfa4f2063f3012373f9999193e77562fbb0ad723be0000000000000000000080bfb195343ff17335bf00000000000080bf6de5073f9020363fd18d1d3e2600773b0ad723beb7e1e93ece0f503db15b63bfdca62a3f9d3d2ebfe19d9b3e000080bf646f073fc4f2373f87751d3e0e4875bb0ad723be3a6ddc3eba1d71bd969166bf2ba1273fc9992abf7e8eb63e000080bf08c0083f5e9b363faefb1d3e151886320ad723be3103293f320a38bca44140bf50c3093fcac130bf8f80f73e000080bf522d083f985b373f0ad7233efc4775bb87751dbe474a5a3fc7f090bde38004bf0ab9cc3efb980cbf87db3b3f000080bf6ad9093f19b6373f72a5203e465c78bb71a520be9f2e343f45c2c4bd8c2e34bf18e10c3f96830dbf3732203f000080bfb64e093f7726373f0ad7233efdfb8932aefb1dbe980d7c3fb799deba661c33be539f063e7a0527bf86113f3f000080bf992f093f1b5f383f0ad7233e1300773bd08d1dbef820593f82cf6f3d6ec806bfc4c9e23e9e9e1fbf1dec243f000080bf9784083f4c09393fbeb1203ef00d7a3bc0b120be1576343f51bba03df17534bf7216193f2ba719bf38fb073f000080bfc2f7073f0580383fd38d1dbe530077bb0ad723bec716ddbeacae44bd319366bf78dc2c3f9ae32dbf5f3593be000080bf75fba43e1914003fc1b120be1b0e7abbc1b120bead7734bf7bd69fbd877734bf6202193ff8b819bfaffd07bf000080bfb8eaa33eb10dff3e0ad723be410077bbd28d1dbedb4a5abf567b6cbdd5e904bfd880df3e79ea1fbf16c125bf000080bf0ed1a23e23fbfd3eb1fb1dbe151886320ad723beb5f228bf1aefd13bd55340bfbe4c0a3f5add30bf11fef5be000080bf967fa33e46ab003f0ad723befcfb8932b0fb1dbe990a7cbf5d49433b675b33be9708063e5ae926bfb7303fbf000080bf0a7ba13e864fff3e8b751dbe2048753b0ad723be68ece6beab987c3debef63bf3d57253f187d2abfa31fbfbe000080bf2c5aa23e806b013f0ad723be0f48753b89751dbee0e058bfe968933d87c206bf526cd03eab7b0cbf76ec3abf000080bf6827a03ec450003f73a520be555c783b72a520be092e34bf820fc53dd42d34bfb3e80c3ff26d0dbfa43e20bf000080bfd03ca13e67e0003f999919be6d562fbb0ad723be0000000000000000000080bf2796343f7c7335bf00000000000080bff4f4a53eadf4003f999919be6b562f3b0ad723be0000000000000000000080bf1896343f8b7335bf00000000000080bf620fa43e4ee6013fcccc4cbd77562fbb0ad723be0000000000000000000080bfdf95343fc37335bf00000000000080bf413cc93ef9ad123fcecc4cbd60562f3b0ad723be0000000000000000000080bfd595343fcd7335bf00000000000080bfaf56c73e999f133f09d723bdfd76b43b0ad723be0000000000000000000080bfd095343fd17335bf00000000000080bfd4dcc93e35e5153f05d723bd1877b4bb0ad723be0000000000000000000080bfe895343fba7335bf00000000000080bf5fc4cd3ed3f3133f57b0d0bc2de7193c0ad723be0000000000000000000080bf0e96343f947335bf00000000000080bf009ccd3ec027193f54b0d0bc3ae719bc0ad723be0000000000000000000080bf0996343f9a7335bf00000000000080bfd844d43e65d7153f2de719bc54b0d03c0ad723be0000000000000000000080bfbf95343fe27335bf00000000000080bf0a95cd3e92d71e3f2be719bc5cb0d0bc0ad723be0000000000000000000080bf1d96343f857335bf00000000000080bf7da4df3ee0da153f0677b4bb05d7233d0ad723be0000000000000000000080bff195343fb27335bf00000000000080bfe6cdc93ecf17223ff576b4bb0ad723bd0ad723be0000000000000000000080bf3596343f6e7335bf00000000000080bf9229e63e4afb133f6b562fbbcccc4c3d0ad723be0000000000000000000080bffc95343fa77335bf00000000000080bf3242c73ede5b243f05678b3bb9e522be073320be14319f3dda5928bff7d33fbfae3e06bf5bbd1c3f8f7b17bf000080bf74ebf03efcd3b83e5572893b0ad723becd171fbe824ea53cc53c7ebf4154ecbdbec494be8e3ed63d997c73bf000080bf575df03e802cb93e16c890390ad723be6ccb1fbe86e02a3deb3b65bfaeece2be03d390bda132e13e993165bf000080bffec6f03e5290ba3e60562fbb0ad723be989919be00000000000080bf000000000000000000000000000080bf000080bf15cfed3e7b9cbb3e93ec93bb0ad723bec73f20be191cdc3c59e774bf677894be7e2809bc9368943e130075bf000080bfce15f13e5743bc3e5d562f3b0ad723be999919be00000000000080bf000000000000000000000000000080bf000080bf74b6ed3e90b6b93e6d562f3b0ad723becbcc4cbd00000000000080bf000000000000000000000000000080bf000080bf2ec4bb3e97b8b93e6b562fbb0ad723bececc4cbd00000000000080bf000000000000000000000000000080bf000080bfd2dcbb3e839ebb3e0677b4bb0ad723be06d723bd00000000000080bf000000000000000000000000000080bf000080bf3aebb63ee39fbc3e0677b43b0ad723be07d723bd00000000000080bf000000000000000000000000000080bf000080bf84b8b63ea0b7b83e38e7193c0ad723be54b0d0bc00000000000080bf000000000000000000000000000080bf000080bf6265af3e0357b73e2de719bc0ad723be5cb0d0bc00000000000080bf000000000000000000000000000080bf000080bfe1bbaf3e1601be3e57b0d0bc0ad723be38e719bc00000000000080bf000000000000000000000000000080bf000080bfbafda73ec4b5c33e5cb0d03c0ad723be23e719bc00000000000080bf000000000000000000000000000080bf000080bf2913a73efda2b13e0ad723bd0ad723be0677b4bb00000000000080bf000000000000000000000000000080bf000080bfb54fa63ee8dcc83e06d7233d0ad723befd76b4bb00000000000080bf000000000000000000000000000080bf000080bf65dfa43e027cac3ececc4cbd0ad723be6d562fbb00000000000080bf000000000000000000000000000080bf000080bfa613a53e1469cc3ececc4c3d0ad723be5d562fbb00000000000080bf000000000000000000000000000080bf000080bf4247a33ef3efa83e999919be0ad723be5d562fbb00000000000080bf000000000000000000000000000080bf000080bf0ae0a63e36e2ef3e6c2c1dbe0ad723be00000000835d95bd77517fbf000000000000000000000000000080bf000080bf059aa53e2c1ff13e6c2c1dbe0ad723bede1a70bb3755fdbe94775ebf000000000000000000000000000080bf000080bf786ea73e191ff13e9e081f3e0ad723be000000004e4f0f3ef56d7dbfc2c5a2bc334405bd13467d3c77d57fbf000080bf5a0ca03e0195833e9899193e0ad723be6d562fbb00000000000080bf000000000000000000000000000080bf000080bfde7aa13ed376853e20731e3e0ad723be1d9e83bb38bbba3e88ff6dbfde1754bd256915bd022d293d6d9c7fbf000080bf8e10a23eb6c8833e0ad7233e71c31fbe00000000ba917f3f18cf6bbd5f2be3bb56c7a4bb5dca073d25db7fbf000080bf1209a03e7d83803e1e5b213e205b21befaaf88bb5ae5243f446a42bfac4bbbbd7eac84bd4e0e853d96eb7ebf000080bf7022a23e0dec813e0ad7233ebd3d1fbe37ca8abbf27e733f32ed9cbe5b2d17bd2a47eabc8246013d88c47fbf000080bffc28a23e6055803e0ad7233e999919be77562fbb0000803f00000000000000000000000000000000000080bf000080bfde7aa13e78c87c3e0ad7233e2b811c3e00000000b2887d3f46ca0d3e000000000000000000000000000080bf000080bf0297a53e08111d3d0ad7233ececc4cbd6d562fbb0000803f00000000000000000000000000000000000080bf000080bf4247a33e0647363e0ad7233ecccc4c3d77562fbb0000803f00000000000000000000000000000000000080bf000080bfa613a53e248bdf3d0ad7233e07d723bd0e77b4bb0000803f00000000000000000000000000000000000080bf000080bf65dfa43ef6392f3e0ad7233e5cb0d0bc3ae719bc0000803f00000000000000000000000000000000000080bf000080bf2913a73e12fc243e0ad7233e9999193e6d562fbb0000803f00000000000000000000000000000000000080bf000080bf0ae0a63e7810253d0ad7233e2b811c3e1cfb63bbe3ad543f8f7d0e3f000000000000000000000000000080bf000080bfce53a73e74101d3d0ad7233e54b0d03c3ae719bc0000803f00000000000000000000000000000000000080bf000080bfbafda73efb0f013e0ad7233e05d7233d1877b4bb0000803f00000000000000000000000000000000000080bf000080bfb54fa63ecca4ed3d0ad7233e3ae719bc5cb0d0bc0000803f00000000000000000000000000000000000080bf000080bf6265af3edaa4193e0ad7233e1877b4bb06d723bd0000803f00000000000000000000000000000000000080bf000080bf84b8b63ed4e6163e0ad7233e2de7193c5cb0d0bc0000803f00000000000000000000000000000000000080bf000080bfe1bbaf3ee5650c3e0ad7233e77562fbbcecc4cbd0000803f00000000000000000000000000000000000080bf000080bf2ec4bb3e46e7143e0ad7233e60562f3bcecc4cbd0000803f00000000000000000000000000000000000080bf000080bfd1dcbb3e7921113e0ad7233efd76b43b07d723bd0000803f00000000000000000000000000000000000080bf000080bf3aebb63ebc220f3e0ad7233e6d562fbb989919be0000803f00000000000000000000000000000000000080bf000080bf72b6ed3e36e3143e0ad7233efdfb8932aefb1dbe980d7c3fb799deba661c33be6f1c33be00000000b00d7cbf000080bf12e6ef3e2200133e0ad7233efc4775bb87751dbe474a5a3fc7f090bde38004bf100e04bfae492e3d6d0a5bbf000080bf6893ef3eb1a3153e0ad7233e6b562f3b999919be0000803f00000000000000000000000000000000000080bf000080bf16cfed3e681d113e0ad7233e1300773bd08d1dbef820593f82cf6f3d6ec806bf567506bffd9315bd3fa559bf000080bfd6c1ef3ee257103ef85820bef75820be9ed46dbb78733dbfdc2c2cbf0000000075cb01bd75d10e3d39b77f3f000080bf789b2d3faae97e3e6c2c1dbe0ad723bede1a70bb3755fdbe94775ebf0000000022701fbd188fb53c39be7f3f000080bf018c2d3f73c1813e6c2c1dbe0ad723be00000000835d95bd77517fbf00000000268f0bbd094a233bbed97f3f000080bf02762e3f87d7813e0ad723be2e811cbe00000000a6cd7fbfe58620bd00000000ea5f03bb3459513d37aa7f3f000080bfd6912e3f98057a3e0ad723be2e811cbe52fb63bb4efc5ebfc680fbbe000000009abacdbcd366363d4daa7f3f000080bfa5b32d3fa9db793e0ad723be989919be59562fbb000080bf0000000000000000000000006ea7873d13707f3f000080bff4e62d3f3fe2773e0ad723be78c31f3e000000001b807dbff0b80d3e248888bc262bf2bb21c4893dc2697f3f000080bfd6912e3fd87ff73c0ad723bececc4cbd6d562fbb000080bf00000000000000000000000096a5873d17707f3f000080bff4e62d3f16f3303e0ad723bececc4c3d59562fbb000080bf000000000000000000000000a2ab873d0b707f3f000080bff4e62d3fd407d43d0ad723be0ad723bd0677b4bb000080bf000000000000000000000000e6a2873d1d707f3f000080bf13322d3f09b9293e0ad723be5cb0d0bc36e719bc000080bf0000000000000000000000001da6873d17707f3f000080bfdc392c3f853c1f3e0ad723be9999193e6d562fbb000080bf000000000000000000000000bfa5873d17707f3f000080bff4e62d3f00530c3d0ad723bec33d1f3e6eca8abb267f73bfeaeb9c3e9a2c17bd50cb80bc370a923d0c517f3f000080bf4e832d3f60ccf83c0ad723be57b0d03c23e719bc000080bf0000000000000000000000002ea4873d1b707f3f000080bfdc392c3f0e31f63d0ad723be09d7233df376b4bb000080bf0000000000000000000000006c0f873d56717f3f000080bf13322d3f68f3e13d0ad723be36e719bc5cb0d0bc000080bf0000000000000000000000005ca5873d17707f3f000080bfbb36283f7712133e0ad723be0677b4bb0ad723bd000080bf000000000000000000000000bba5873d17707f3f000080bffc96243fafa10f3e0ad723be2de7193c54b0d0bc000080bf00000000000000000000000031bd873de56f7f3f000080bfbc36283fe6be053e0ad723be6d562fbbcecc4cbd000080bf0000000000000000000000005fa5873d17707f3f000080bf4518223fe4260d3e0ad723be66562f3bcbcc4cbd000080bf00000000000000000000000025a5873d19707f3f000080bf4518223f385b093e0ad723befd76b43b06d723bd000080bf000000000000000000000000cc95873d39707f3f000080bffc96243f82d1073e0ad723befcfb8932b0fb1dbe990a7cbf5d49433b675b33bed3bd32bef7d88a3dbe787b3f000080bfbe13083f0f58063e0ad723be60562f3b989919be000080bf00000000000000000000000003a6873d17707f3f000080bf2425093fd3a5043e0ad723be0f48753b89751dbee0e058bfe968933d87c206bf083304bf7cb8f83d3602593f000080bf6e34083f97b6033e0ad723be74562fbb999919be000080bf0000000000000000000000009fa5873d17707f3f000080bf2425093f8071083e0ad723be410077bbd28d1dbedb4a5abf567b6cbdd5e904bf0f8d05bf1e602d3d77225a3f000080bf832e083f8609093ea7081fbe0ad7233e0000000000000000000000000000803f000000000000803f00000000000080bf1209a03e203a963b0ad723be78c31f3e0000000000000000000000000000803f000000000000803f00000000000080bf670b9e3e000000000ad723be2e811cbe0000000000000000000000000000803f000000000000803f00000000000080bf0048e53b000000006c2c1dbe0ad723be0000000000000000000000000000803f000000000000803f00000000000080bf00000000a05fd03b672c1d3e0ad7233e0000000000000000000000000000803f000000000000803f00000000000080bf1209a03e91c79c3e9e081f3e0ad723be0000000000000000000000000000803f000000000000803f00000000000080bf0000000025b09d3e0ad7233e2b811c3e0000000000000000000000000000803f000000000000803f00000000000080bfef739c3e1209a03e0ad7233e71c31fbe0000000000000000000000000000803f000000000000803f00000000000080bf40d77e3b1209a03ecbcc4c3d6b562f3b0ad723be00000000000000000000803f0a5835bfb4b134bf000000000000803fde755b3e12efe43e04d7233d0677b43b0ad723be00000000000000000000803f0a5835bfb4b134bf000000000000803f53b35b3e9666e03e54b0d03c2de7193c0ad723be00000000000000000000803f0a5835bfb4b134bf000000000000803f8a0e5c3e91e5d93e57b0d0bc2de7193c0ad723be00000000000000000000803ff3672e3f3f663bbf000000000000803f03f3863e79973b3f09d723bdfd76b43b0ad723be00000000000000000000803ff3672e3f3d663bbf000000000000803fd1488a3e90c9383fcecc4cbd60562f3b0ad723be00000000000000000000803ff3672e3f3d663bbf000000000000803fce9c8c3e8dd5363f0ad723be57b0d03c23e719bc0000803f000000000000000000000000000000000000803f0000803fb837793f62e9d53e0ad723be09d7233df376b4bb0000803f000000000000000000000000000000000000803f0000803f3ca6763f69c6d03e0ad723bececc4c3d59562fbb0000803f000000000000000000000000000000000000803f0000803f96e1743f1c3dcd3e6b562fbb0ad723bececc4cbd000000000000803f000000000000000000000000000080bf0000803fd2dcbb3e839ebb3e0677b4bb0ad723be06d723bd000000000000803f000000000000000000000000000080bf0000803f3aebb63ee39fbc3e2de719bc0ad723be5cb0d0bc000000000000803f000000000000000000000000000080bf0000803fe1bbaf3e1601be3ecccc4cbd77562fbb0ad723be00000000000000000000803f9f2f8cbea337763f000000000000803fe199563fb2edf83e05d723bd1877b4bb0ad723be00000000000000000000803f9f2f8cbea337763f000000000000803f3623583f47e5f53e54b0d0bc3ae719bc0ad723be00000000000000000000803fa02f8cbea337763f000000000000803f28625a3f0c78f13e0ad723bececc4cbd6d562fbb0000803f00000000000000000000000000000000000080bf000080bff2f8773f3ae3fb3e0ad723be0ad723bd0677b4bb0000803f00000000000000000000000000000000000080bf000080bf5dd6793f588ef83e0ad723be5cb0d0bc36e719bc0000803f00000000000000000000000000000000000080bf000080bfd48b7c3f81b7f33e38e7193c0ad723be54b0d0bc000000000000803f0000000046ec7f3f00000000b3fcc8bc0000803fe4026f3f2cfa5e3c0677b43b0ad723be07d723bd000000000000803f0000000046ec7f3f00000000b4fcc8bc0000803f7b9f6e3ff6f4e33c6d562f3b0ad723becbcc4cbd000000000000803f0000000046ec7f3f00000000b3fcc8bc0000803ff7536e3fd7151a3d5cb0d03c3ae719bc0ad723be00000000000000000000803ff3b4acbefcfe703f000000000000803fd429753f5968603f07d7233d0e77b4bb0ad723be00000000000000000000803ff3b4acbefcfe703f000000000000803ff5c3723fc6845d3fcecc4c3d6d562fbb0ad723be00000000000000000000803ff3b4acbefbfe703f000000000000803f9e1b713f01855b3f9c15323e2bc0573c80b9d5bc026c063f4d723fbf84fdcf3e96198f3e264199be648c69bf000080bfd0dbaf3e1cbcff3d0ad7233e2de7193c5cb0d0bcc779733efa4f48bf4b54133fd0d0993e781301bff0444fbf000080bfe1bbaf3ee5650c3e0ad7233efd76b43b07d723bdc1fb813e458c6ebf10c5843e9f71553e6e1c56be949674bf000080bf3aebb63ebc220f3e0ad7233e60562f3bcecc4cbd3a4b843efd3c77bfab21ba3c0cf7a03debf61ebb11357fbf000080bfd1dcbb3e7921113e992a333e4fe2da3bcfcc4cbd88f80f3f9c8053bfb5b20a3d13e0203dafe468bccfc67fbf000080bf58aabb3e53b0033e0ad7233e6b562f3b999919be9053843e8f4c77bf484fa2bbf0f498bd489d73bcb4417fbf000080bf16cfed3e681d113e992a333e4fe2da3b989919bef1ed0f3f2b8753bf9aae0bbdfb0f22bdae826a3cf7c57fbf000080bf9c9ced3e43ac033e0ad7233e1300773bd08d1dbea8467f3e7a896ebf6d1a87be414759be9d6b5a3e7d2374bf000080bfd6c1ef3ee257103ebeb1203ef00d7a3bc0b120be0ba6723e94dc71bf5ad467befe863cbe9c953d3eab1e77bf000080bf5158f13e497d123ed18d1d3e2600773b0ad723be7ca8823e80686ebf691c85be8a2b50bec243583efac074bf000080bf02eff23e90b2143eb9f5453e9911cd3ccfcc4cbd6a2e5e3f064afdbeed41383d3084b13c4f2358bd49957fbf000080bf58aabb3ec874d33d9c15323e2bc0573c9c1532be5d30ea3e582743bf546feabe5fc29bbee90ab33e38d762bf000080bf9eb0f93e1ab0ff3d9899193e60562f3b0ad723be4fa6a83ceb3f77bfcd4c84beeebb66bee2417d3e1e3f71bf000080bfc0fbf23e3b35183e9899193e4fe2da3b992a33beb6b20a3d9c8053bf88f80fbfb2b77fbe8ab1093f3f214ebf000080bfee87fa3edb61153ecbcc4c3d4fe2da3b992a33beb2b20abd9d8053bf87f80fbf3be980be69360d3fc4914bbf000080bf5254fc3e1d545c3ecbcc4c3d6b562f3b0ad723be7b29e0bc432d77bfc08584bee0be7ebed1c4833ecc096fbf000080bf24c8f43e7c275f3ec9503f3e7bb9d53c9c1532be55ee4e3f5625d5be4f25d5bebef7a3be929a903e247d67bf000080bf9eb0f93e3c22db3d9d15323e7db9d53cc9503fbe5525d53e5525d5be54ee4ebfcc0012bf19a4123f75b716bf000080bf1d30003fb076ed3db9f5453e9711cd3c989919be6a2e5e3f064afdbeeb4138bda5dab2bc03f8563d0a967fbf000080bf9c9ced3eac6cd33dc9503f3e7db9d53c80b9d5bc54ee4e3f5525d5be5825d53e08e4a33e1dbd90be3c7b67bf000080bfd0dbaf3e402edb3d9c15323e7bb9d53c40c057bc0a29043fb7b5cdbeed9f413fcd790c3f26db05bf04fd26bf000080bf2ea3a93ecc84ed3dcbcc4c3ececc4c3dcbcc4cbd7e487f3fa09758bda697583de3133f3d4600e7bdf9157ebf000080bf8afebb3e7cc5a63db9f5453ececc4c3da011cdbc692e5e3fee4138bd0a4afd3eee81f03ef48e7fbe6fc758bf000080bfeba4af3eee41b03dcbcc4c3ecccc4c3d989919be7e487f3fa39758bd9e9758bdeb2b3fbd0334e63dcc187ebf000080bfcdf0ed3e5cbda63db9f5453ececc4c3d992a33be6a2e5e3feb4138bd064afdbe188af0be002d7f3e62cc58bf000080bfee87fa3ec035b03db9f5453e9899193e992a33be6a2e5e3fea41383d064afdbebd6ff8be4e7a943e852c53bf000080bf5254fc3e70cb8c3ccbcc4c3e9999193e999919be7e487f3fa297583d9f9758bd1d4378bd9a19213ede557cbf000080bf32bdef3ec0d34d3cc9503f3e9c15323e9d1532be54ee4e3f5825d53e5525d5be18740abf05937b3e7cf04dbf000080bf2d59fc3ec006ab3bb9f5453e982a333e989919be692e5e3f064afd3ef04138bde24223bed73e443ee1ea77bf000080bfe44ef03e00000000b9f5453e982a333ecfcc4cbd692e5e3f064afd3eed41383d8f86233eccb844be0de277bf000080bfa15cbe3e00408237cbcc4c3e9999193ecbcc4cbd7e487f3fa397583da397583d575a783d4b9c21be8e507cbf000080bfedcabd3eb0144e3cb9f5453e9899193ea011cdbc692e5e3ff041383d0b4afd3e3869f83e17b594be192453bf000080bf4f71b13e30fc8c3cc9503f3e9c15323e80b9d5bc51ee4e3f5825d53e5a25d53e327c0a3fd00c7cbebae14dbf000080bf5e84b23e00c7ab3b9c15323e7bb9d53c40c057bc0a29043fb7b5cdbeed9f413fcd9e29bf1d373fbfd636633d000080bf05e1d83e2a523b3f0ad7233e2de7193c5cb0d0bcc779733efa4f48bf4b54133fac9029bf366110bf307efcbe000080bfd0b3e33e16d43a3f9c15323e2bc0573c80b9d5bc026c063f4d723fbf84fdcf3ead4e1ebf2fc829bf21dcd7be000080bfc272dd3e4c09393f0ad7233e54b0d03c3ae719bcdb87753e013e0bbf0ddd4d3fa1b133bfa25a2bbfba4879be000080bffc03de3e00ac3d3f992a333ececc4c3d60e2dabbbe09113f0c62f7bcf6ce523fe5a01cbf87502fbf56aaca3e000080bfbe0cd03ea65c3f3f0ad7233e05d7233d1877b4bb5bf4783ec51c82be4aa56f3f20ff34bf8a0735bf74c308bc000080bf05e1d83e7c3d403fc9503f3e7db9d53c80b9d5bc54ee4e3f5525d5be5825d53e9a2e15bfb1992abfc920ee3e000080bf474fd43e4c09393fb9f5453ececc4c3da011cdbc692e5e3fee4138bd0a4afd3e2999cfbe92b523bf2937273f000080bf408fc93ee71d3c3f0ad7233ecccc4c3d77562fbb6451843eec474cbc6948773f29352fbf4c4235bfe424323e000080bfb857d53e2202423fb9f5453e9899193ea011cdbc692e5e3ff041383d0b4afd3e974bc8be16460dbfcf8a3c3f000080bf4932a63e63cc4d3f992a333e9899193e60e2dabb8bf80f3fb7b20a3d9c80533f604f21bf322221bf5cd1e83e000080bfc6afac3e220b513f0ad7233e9999193e6d562fbb154d843eccb3a53c6140773fd69233bf1ef92ebf3cd54e3e000080bfc0fab13e9fb0533f9c15323e9c15323e40c057bcf473ef3e2e75ef3eb801403fe7c407bff3c407bf0b52293f000080bfd09aa43e4575553fc9503f3e9c15323e80b9d5bc51ee4e3f5825d53e5a25d53ea47b86bee772c1be3e49633f000080bf1309a03e662c533f0ad7233e2b811c3e1cfb63bb9c467f3e7c1a873e7a896e3f54ae28bfe3ad28bfcbcbb93e000080bff6f9b03e0331543ff558203ef558203e62d46dbb0e14833e4ead833eb38c6e3f1bae28bf1bae28bfd0cbb93e000080bffcdab03e4575553f672c1d3e0ad7233eb01a70bb731a873eb6467f3e78896e3f16ae28bf1fae28bfd0cbb93e000080bfd4beb03ef59b563f9c15323ec7503f3e80b9d5bc5525d53e51ee4e3f5f25d53ea572c1bed47b86be4449633f000080bf1409a03e23be573f9999193e0ad7233e74562fbb0595a73cf64c843e1440773f98f92ebf8e8f33bf63fc4e3e000080bfc0fab13eeb39573f9899193e982a333e60e2dabbb0b20a3d8bf80f3f9c80533f2d2221bf644f21bf5dd1e83e000080bfc8afac3e68df593f9899193eb9f5453ea011cdbcf741383d672e5e3f124afd3e0d460dbfa44bc8bed38a3c3f000080bf4932a63e271e5d3fcbcc4c3db9f5453ea011cdbcf74138bd662e5e3f144afd3e3ec018bf664dd7be3bf82e3f000080bf408fc93ea2cc6e3fcbcc4c3d0ad7233e74562fbbc3474cbc6a51843e6748773f754235bf01352fbfc524323e000080bfb857d53e67e8683fcbcc4c3d982a333e60e2dabbd7f800bd13ab103fcf0c533fa80933bffd0a1abfd681c53e000080bfbf0cd03ee48d6b3f06d7233d0ad7233e0e77b4bb2ea785bee218813e838b6e3faaf434bf341335bf170dd9bb000080bf04e1d83e0dad6a3f78b9d53c9c15323e40c057bc632bcfbe4b91053fe543403f214e52bfd57411bf551344bd000080bf05e1d83e5f986f3f54b0d03c0ad7233e3ae719bc485413bfc979733efe4f483f618926bfb38136bfcf0e86be000080bffc03de3e893e6d3f23e7193c0ad7233e5cb0d0bc0ddd4dbfcf87753e043e0b3f89cf0abf9fbb2bbf178501bf000080bfd0b3e33e7316703f20c0573c9c15323e80b9d5bceb9f41bf0a29043fb5b5cd3e1f4827bf200b20bfd787dabe000080bfc272dd3e3ee1713fb9f5453ececc4c3d992a33be6a2e5e3feb4138bd064afdbe216dc7bce0a77d3fdbfe07be000080bfaebd143f1ce32e3fc9503f3e7bb9d53c9c1532be55ee4e3f5625d5be4f25d5be22b5693e5b965f3f1748dcbe000080bf10c30e3f7882303f9d15323e7db9d53cc9503fbe5525d53e5525d5be54ee4ebf6c3cb83b2be3633fc03fe9be000080bf10c30e3f99bd333f992a333ececc4c3db9f545be064afd3eeb4138bd6a2e5ebff60f25bdec137f3f0dd098bd000080bfaebd143ff679333f992a333e9899193eb9f545be064afd3eea41383d6a2e5ebf8a10253dec137f3f36d0983d000080bf18bf2d3ff679333fb9f5453e9899193e992a33be6a2e5e3fea41383d064afdbed76cc73ce0a77d3fc9fe073e000080bf18bf2d3f1ce32e3fc9503f3e9c15323e9d1532be54ee4e3f5825d53e5525d5be67a913be3558533fa1aa0b3f000080bfb6b9333f7882303f9c15323e9c15323ec9503fbe5125d53e5725d53e55ee4ebf7e53863c48ac623ff1cded3e000080bfb6b9333f9abd333f9c15323ec7503f3e9c1532be5a25d53e53ee4e3f5725d5be40faf5bd7fb3003f57265b3f000080bfd7f4363f9abd333f9899193eb9f5453e992a33befa41383d672e5e3f0e4afdbea2a349bcf1c5fd3ebc515e3f000080bf3394383f37b8393f9899193e9999193ecbcc4cbe9e97583da297583d7e487fbf42558b3baea27f3f93d0593d000080bf18bf2d3f37b8393f9999193ececc4c3dcbcc4cbe9f97583d9e9758bd7e487fbf17528bbbaea27f3f89d059bd000080bfaebd143f37b8393f9899193e982a333eb9f545bef241383d064afd3e692e5ebf0000000034685e3f328bfd3e000080bf59fd333f37b8393fcfcc4c3d982a333eb9f545bef04138bd084afd3e692e5ebf75fc7d3b496d5e3f6177fd3e000080bf59fd333fa1b9523fcfcc4c3db9f5453e992a33bef94138bd672e5e3f0e4afdbea0a3493cf1c5fd3ebc515e3f000080bf3394383fa1b9523fcbcc4c3d9999193ecbcc4cbea39758bd9f97583d7e487fbf7e5a8bbbaea27f3f9ad0593d000080bf18bf2d3fa2b9523f80b9d53c9c15323ec9503fbe5a25d5be5a25d53e53ee4ebf14a6923dd8b9663f20c6da3e000080bfb6b9333f3fb4583f9899193e9911cd3cb9f545beed41383d064afdbe6a2e5ebf0000000034685e3f308bfdbe000080bf6c7f0e3f37b8393f9c15323e2bc0573c9c1532be5d30ea3e582743bf546feabe8f7fce3d8f580e3f5d3453bf000080bfef870b3f99bd333f9899193e4fe2da3b992a33beb6b20a3d9c8053bf88f80fbf8babd23bb918103f869653bf000080bf92e8093f37b8393fcbcc4c3d4fe2da3b992a33beb2b20abd9d8053bf87f80fbf83abd2bbb618103f879653bf000080bf92e8093fa1b9523fcbcc4c3d9711cd3cb9f545beea4138bd064afdbe692e5ebf0000000034685e3f328bfdbe000080bf6c7f0e3fa1b9523fcbcc4c3dcccc4c3dcbcc4cbea09758bda39758bd7e487fbf355c8b3baea27f3f9fd059bd000080bfaebd143fa2b9523f78b9d53c7bb9d53cc9503fbe5125d5be5125d5be57ee4ebfde34b8bb29e3633fc73fe9be000080bf10c30e3f3fb4583f78b9d53c2bc0573c9c1532be9ff1ccbe033142bf0ba003bfbfd58fbd61b6153f09e14ebf000080bfef870b3f3fb4583fa011cd3c9899193eb9f545be064afdbefa41383d692e5ebfeb0f25bdec137f3f15d0983d000080bf18bf2d3fe2f7583f9811cd3ccecc4c3db9f545be064afdbed54138bd6a2e5ebf3a10253dec137f3f14d098bd000080bfaebd143fe2f7583f20c0573c7db9d53c9d1532bee34340bf642bcfbe4f9105bf96ce34bec96f623fd614ddbe000080bf10c30e3f60ef5b3f40e2da3bcecc4c3d992a33becf0c53bfb1f800bd13ab10bfceb32e3deefd7d3f38a6f0bd000080bfaebd143fbd8e5d3f60e2da3b9899193e992a33be9c8053bfd0b20a3d8af80fbf7fa425bd36f77d3f9900f43d000080bf18bf2d3fbc8e5d3f40c0573c9c15323e9c1532beb5d23fbfc8bfef3ef9bfefbe444d763e55ec593f9ec7ee3e000080bfb6b9333f60ef5b3fb9f5453e982a333e989919be692e5e3f064afd3ef04138bd2bb866bdf67e403eaf057b3f000080bfd0322d3d1209a03ec9503f3e9c15323e9d1532be54ee4e3f5825d53e5525d5be3bfd063eeba80f3fbb2f513f000080bf30e39a3c7425a33e9c15323ec7503f3e9c1532be5a25d53e53ee4e3f5725d5be089229bd67cff23ed521613f000080bf08bf9e3ca24aa73e992a333eb9f5453e989919be104afd3e672e5e3ffb4138bd39edaebd47f0cc3d57c67d3f000080bf58f02f3d5ceca53e992a333eb9f5453ecfcc4cbd0e4afd3e672e5e3ffa41383d7ce9ed3d684ef0bd797c7c3f000080bfe9ef0f3e4a80a63eb9f5453e982a333ecfcc4cbd692e5e3f064afd3eed41383d4581a03d673567beaa94783f000080bf86400f3e009da03ec9503f3e9c15323e80b9d5bc51ee4e3f5825d53e5a25d53e35a2dabd7a7c17bf038d4c3f000080bfa11c273e2200a43e9c15323ec7503f3e80b9d5bc5525d53e51ee4e3f5f25d53eb6a4923dc49ef8be550a5f3f000080bf1a98273e4e25a83e9899193ecbcc4c3ecbcc4cbda097583d7e487f3fa997583d92827f3dbcfb65bdc8187f3f000080bfc02f103e2757b13e9899193eb9f5453ea011cdbcf741383d672e5e3f124afd3e6bc3bb3df84ffebec7f15c3f000080bf79e4283eae84b23e9999193ecbcc4c3e989919bea497583d7e487f3fa09758bd1a0a18bd17c9603d01707f3f000080bfb0ef303d38c3b03e9899193eb9f5453e992a33befa41383d672e5e3f0e4afdbea47688bde450fe3edf875d3f000080bf203c983ce1a6b13ecfcc4c3db9f5453e992a33bef94138bd672e5e3f0e4afdbe30b8f7bdff41f93eeb755d3f000080bf283c983ca834e13ecbcc4c3dcbcc4c3ecbcc4cbda69758bd7e487f3fa897583dd34b473d84194ebd435f7f3f000080bfbf2f103eefe4e03ecbcc4c3db9f5453ea011cdbcf74138bd662e5e3f144afd3e1374113ef01ff8be21f55c3f000080bf79e4283e7512e23ecbcc4c3dcbcc4c3e999919bea79758bd7e487f3fa79758bd9d4ad0bc8451533d82937f3f000080bfacef303d0051e03e80b9d53cc7503f3e9c1532be5f25d5be51ee4e3f5525d5bea96aecbd4d78d03e84f1673f000080bf10bf9e3c0e96ed3ecfcc4c3d982a333eb9f545bef04138bd084afd3e692e5ebf31446abe9e30573fe063fb3e000080bf0000000078f0e33e80b9d53c9c15323ec9503fbe5a25d5be5a25d53e53ee4ebf724ca1bea995443fbac70e3f000080bf2046ce3bbf82ef3e40c0573c9c15323e9c1532beb5d23fbfc8bfef3ef9bfefbe688670be4047f23e425c593f000080bf40e39a3cd7baf53ea011cd3cb9f5453e989919be104afdbe672e5e3f024238bd897a273c8ece6b3de18f7f3f000080bf58f02f3d0a39ed3e9811cd3cb9f5453ecfcc4cbd104afdbe672e5e3fe341383d3e82273cb3323cbd5db77f3f000080bfe9ef0f3ef9cced3e40e2da3b982a333ecfcc4cbdf9ce52bfbb09113fc761f73c6a7defbc2ba3c3bd2ab87e3f000080bf86400f3e325ef93e60e2da3b982a333e989919be9c8053bf8af80f3fccb20abd1af8363d7b4e003e93b97d3f000080bfd0322d3d43caf83e78b9d53cc7503f3e80b9d5bc5a25d5be53ee4e3f5a25d53ef988093e97dccbbe1e4d683f000080bf1b98273eba70ee3e78b9d53c9c15323e40c057bc632bcfbe4b91053fe543403ff6728d3e3f9136bf17ef243f000080bfd706343ea683f03ecbcc4c3d982a333e60e2dabbd7f800bd13ab103fcf0c533f60ca6f3ec3354cbff0440e3f000080bf398d3a3e9204e53e20c0573c9c15323e80b9d5bceb9f41bf0a29043fb5b5cd3e215b403ea575d5beb8aa633f000080bfa11c273e8495f63e23e7193c0ad7233e5cb0d0bc0ddd4dbfcf87753e043e0b3f7babc43ef336fabe0989483f000080bffc34273ef888fa3ef376b43b0ad7233e07d723bd4ba56fbf61f4783eb81c823e1a99103e1acccdbe009b673f000080bf49b0183e934cfc3e59562f3b0ad7233ececc4cbd694877bf6451843e47474c3c5cf506bd84c22ebe6d1a7c3f000080bf80b10e3e8896fd3e74562f3b0ad7233e989919beb03e77bf2f4c843ecb2eb0bc32bf0c3dbccc563e5a267a3f000080bfb0f62a3d9a02fd3ea9ec933b0ad7233ec73f20be7a896ebfb1467f3e6f1a87be833108be2042e23ee91b633f000080bfb000113d2319fc3e33d2913bcddf213eccdf21bea38c6ebf5df9833eebc782be4a5102beada7da3e4d2d653f000080bf045f0a3da46afc3edb078d3b0a7d1f3e0ad723be78896ebf701a873ec5467fbe45b1fdbd1e2bd43e2bd1663f000080bf1859023de3d5fc3e77562f3b9999193e0ad723be0b3f77bf0d10ae3c574c84be4c7f67bee17ad63ec622613f000080bf507d013de87ffe3e60e2da3b9899193e992a33be9c8053bfd0b20a3d8af80fbfc16ef8be8ad7ed3e5ca43d3f000080bf604c8b3c4982fc3e78b9d53c2bc0573c9c1532be9ff1ccbe033142bf0ba003bfe7e4a7be838acfbe4c735a3f000080bf03034e3ee8c6d83ecbcc4c3d4fe2da3b992a33beb2b20abd9d8053bf87f80fbfba676abe2a950abf831d4f3f000080bf625f4c3e1084e33ecbcc4c3d6b562f3b0ad723be7b29e0bc432d77bfc08584be111e53be95dc7dbec453723f000080bfde755b3e12efe43e54b0d03c2de7193c0ad723bea39706bf179650bf81347abe2c4937be3c0b33be45db773f000080bf8a0e5c3e91e5d93e21e7193c57b0d03c0ad723befd4f48bf4a5413bfb87973bef13e2cbe536d30beca77783f000080bf8a0e5c3eea85ce3e20c0573c7db9d53c9d1532bee34340bf642bcfbe4f9105bf308ed2be13c1a9befe5d593f000080bf01034e3e6ea3cf3e78b9d53c7bb9d53cc9503fbe5125d5be5125d5be57ee4ebf818212bf7b2212bf7bb7163f000080bf6bab403e2e33d43eeb76b43b0ad7233d0ad723be888b6ebf1ca785beca1881beb2684fbe544c4fbe4e47753f000080bf52b35b3e6101c83e40e2da3bcecc4c3d992a33becf0c53bfb1f800bd13ab10bfd97c0abf3ebc7fbe86984d3f000080bf635f4c3e8ce0c43e54562f3bcecc4c3d0ad723be694877bf31474cbc595184beb20c7fbe5b0367bea01c713f000080bfde755b3e8776c33e60e2da3b9899193e992a33be9c8053bfd0b20a3d8af80fbf2b320dbf003181be57894b3f000080bf0306493e1873a13e77562f3b9999193e0ad723be0b3f77bf0d10ae3c574c84be4dc482bee55c7fbe78226f3f000080bf7d1c583e1209a03e2bc057bc9c15323e80b9d5bc4b723f3f076c063f82fdcf3eca56e73c44f222bf0150453f000080bf29ac9b3e6c1a673f2de719bc0ad7233e5cb0d0bcf94f483fc879733e4c54133fd7d35abe9bfb43bfd1591b3f000080bf7b1c9e3e1fc4653ffd76b4bb0ad7233e07d723bd478c6e3fc6fb813e0bc5843e7ca7dfbc01db29bff1673f3f000080bf6e4e973e2c6c643f66562fbb0ad7233ececc4cbdfd3c773f454b843eb021ba3c5865313e792e35bfcd552f3f000080bf1898923e9185633f4fe2dabb982a333ecfcc4cbd9d80533f87f80f3fb1b20a3d84f9b83e782f13bfa9ee3b3f000080bf2f3d903eca0e653f4fe2dabb982a333e989919beb628533f3e80103fd94e03bd0771fa3e111e2fbfd3860a3f000080bfe5244c3e56ac573f66562fbb0ad7233e999919beda4b773f3953843ea3e8dfbb0de0623ef95c50bfaf7d093f000080bfb8da503e1d23563f9e7289bb0ad7233ed4171fbe7c896e3fb9467f3e5a1a87bef412b33eb6a84fbf4af9ef3e000080bfb1dc4c3e342f553f2bc057bc9c15323e9d1532be8729403f722fef3edf39efbe2662233f8e1532bf88daa83e000080bf83ae3a3e6651533f24678bbbcde5223ef83220be7d896e3f95467f3e601a87beeb12b33eada84fbf6df9ef3e000080bf0c594c3eebe5543f6fe889bbdb6c213edb6c21be458c6e3f2acb843e91f581be75a2b43ef3b04fbf78b0ee3e000080bfc3e84b3eb289543f606284bbca881e3e0ad723be7c896e3f681a873e97467fbe1c4fb53e28d14fbfecbced3e000080bfa8034b3e82d7533f60562fbb9999193e0ad723be793f773f5065ab3c904c84be29e32f3e33574cbf02cf133f000080bf1e814c3ee55b533f4fe2dabb9899193e992a33be9d80533fa9b20a3d87f80fbf120aba3e627d4bbf93ccf83e000080bf8c48413e9fbc503f4fe2dabbcecc4c3d992a33bed10c533fd9f800bd10ab10bfa60faf3e319944bf13a60a3f000080bf001e6a3ee056423f6b562fbbcccc4c3d0ad723be6b48773fd7474cbc585184be88ca2b3e21f03abfa38b293f000080bf9356753e26f6443f0677b4bb05d7233d0ad723be858b6e3f24a785bed01881be005bb73bf62f2fbfe9a93a3f000080bfa4697a3e8815433f2bc057bc7bb9d53c9c1532bee443403f682bcfbe499105bf75d89c3d3f433bbfc3722d3f000080bfef0a773e16093e3f2de719bc54b0d03c0ad723befa4f483f4a5413bfca7973be60a130bee83511bfc0274e3f000080bf1ada803e6a64403f7db9d5bc2bc0573c9c1532be99f1cc3e023142bf0fa003bf569745be48461ebf250d433f000080bfa46b803ea52d3a3f7bb9d5bc7db9d53cc9503fbe5525d53e5325d5be54ee4ebfbd44173e5fa358bf790c033f000080bfffaa703e264f3a3f57b0d0bc2de7193c0ad723bea397063f179650bf8f347abe5537a1bec310e8be7f7b553f000080bf03f3863e79973b3fcecc4cbd60562f3b0ad723be6c29e03c432d77bfc18584be150aeebe3a4f77bee90d5a3f000080bfce9c8c3e8dd5363fcecc4cbd4fe2da3b992a33beb8b20a3d9c8053bf88f80fbfe551f0be3b8b02bfd98a383f000080bfd67b853e4c68353f999919be4fe2da3b992a33beb2b20abd9c8053bf88f80fbfab530abfed9eeabe53aa343f000080bf84fb963eeff3253f999919be6b562f3b0ad723be4462a8bcf63f77bfd24c84bef6fd02bf2ef658beb027553f000080bf7b1c9e3e2f61273f4fe2dabbcecc4c3d992a33bed10c533fd9f800bd10ab10bf6ab32ebdf0fd7d3f1ca6f0bd000080bfbf63363f87d7813e2bc057bc7bb9d53c9c1532bee443403f682bcfbe499105bfb3ce343ec86f623fd314ddbe000080bf2169303f3f16853e7bb9d5bc7db9d53cc9503fbe5525d53e5325d5be54ee4ebf0135b83b28e3633fc93fe9be000080bf2169303f828c8b3e9711cdbccecc4c3db9f545be064afd3ee94138bd692e5ebf621025bdec137f3f2dd098bd000080bfbf63363f3b058b3e9911cdbc9899193eb9f545be064afd3ee641383d6a2e5ebf8a10253dec137f3f34d0983d000080bf29654f3f3b058b3e4fe2dabb9899193e992a33be9d80533fa9b20a3d87f80fbff0a4253d34f77d3fcd00f43d000080bf29654f3f87d7813e2bc057bc9c15323e9d1532be8729403f722fef3edf39efbe16471cbeb5854f3f7eb8103f000080bfc75f553f4016853e7db9d5bc9c15323ec9503fbe5325d53e5525d53e54ee4ebf0353863c48ac623ff1cded3e000080bfc75f553f828c8b3e7cb9d5bcc7503f3e9c1532be5c25d53e53ee4e3f5425d5be3cfaf5bd7eb3003f59265b3f000080bfe89a583f828c8b3ececc4cbdb9f5453e992a33befe41383d672e5e3f0e4afdbea4a349bcf1c5fd3ebc515e3f000080bf443a5a3fbe81973ececc4cbd9999193ecbcc4cbea297583da797583d7e487fbf34558b3baea27f3f97d0593d000080bf29654f3fbe81973ecccc4cbdcecc4c3dcbcc4cbea497583da09758bd7e487fbfda548bbbaea27f3f93d059bd000080bfbf63363fbe81973ececc4cbd982a333eb9f545bef441383d064afd3e6a2e5ebf0000000035685e3f308bfd3e000080bf6aa3553fbe81973e989919be982a333eb9f545bef04138bd064afd3e692e5ebf86127e3b496d5e3f5d77fd3e000080bf6aa3553f9384c93e989919beb9f5453e992a33befa4138bd672e5e3f0e4afdbea0a3493cf1c5fd3ebc515e3f000080bf443a5a3f9384c93e999919be9999193ecbcc4cbea39758bda497583d7e487fbf04548bbbaea27f3f96d0593d000080bf29654f3f9384c93e9c1532be9c15323ec9503fbe5a25d5be5a25d53e53ee4ebf61a6923ddab9663f19c6da3e000080bfc65f553fce79d53ececc4cbd9911cd3cb9f545bef041383d064afdbe6a2e5ebf0000000035685e3f2e8bfdbe000080bf7d25303fbe81973e7db9d5bc2bc0573c9c1532be99f1cc3e023142bf0fa003bfc4d58f3d62b6153f07e14ebf000080bf002e2d3f828c8b3ececc4cbd4fe2da3b992a33beb8b20a3d9c8053bf88f80fbf8fabd23bb918103f869653bf000080bfa38e2b3fbe81973e999919be4fe2da3b992a33beb2b20abd9c8053bf88f80fbf7fabd2bbb718103f869653bf000080bfa38e2b3f9384c93e999919be9711cd3cb9f545beeb4138bd064afdbe692e5ebf0000000034685e3f328bfdbe000080bf7d25303f9384c93e999919becccc4c3dcbcc4cbea29758bda39758bd7e487fbf83558b3baea27f3f96d059bd000080bfbe63363f9384c93e9d1532be7bb9d53cc9503fbe5025d5be5125d5be57ee4ebfea32b8bb28e3633fc93fe9be000080bf2169303fce79d53e9d1532be2bc0573c9c1532be7b20eabec83043bfc35feabe23a1cebd7c4e0e3fa33a53bf000080bfff2d2d3fce79d53e982a33be9899193eb9f545be064afdbefb41383d692e5ebf0f1025bdec137f3f1fd0983d000080bf29654f3f1401d63e992a33bececc4c3db9f545be064afdbed84138bd6a2e5ebf7a10253dec137f3f27d098bd000080bfbe63363f1501d63eca503fbe7db9d53c9d1532be58ee4ebf4e25d5be4e25d5beecb469be5a965f3f3448dcbe000080bf2169303f11f0db3eb9f545bececc4c3d992a33be692e5ebfd04138bd084afdbe7c6dc73cdea77d3fddfe07be000080bfbe63363fca2edf3eb9f545be9899193e992a33be692e5ebf0342383d0a4afdbe976dc7bcdea77d3ffcfe073e000080bf29654f3fc92edf3ec7503fbe9c15323e9c1532be51ee4ebf5f25d53e5625d5be18b5693e5a965f3f2948dc3e000080bfc65f553f10f0db3e4fe2dabb982a333e989919beb628533f3e80103fd94e03bdeaaebcbd84b4423e7a387a3f000080bf1257143f23fbfd3e2bc057bc9c15323e9d1532be8729403f722fef3edf39efbe843be93d27e81a3fa8b7493f000080bfb35f0e3f739d003f7cb9d5bcc7503f3e9c1532be5c25d53e53ee4e3f5425d5be4ad068bd09d0f53e2c18603f000080bfb4840e3fa5af023f9711cdbcb9f5453e989919be104afd3e672e5e3ff74138bdb9c2cebdbad4de3d142a7d3f000080bfa08b143fa8ee013f9911cdbcb9f5453ecfcc4cbd0e4afd3e672e5e3ff441383d4cc2ce3d78d4debd152a7d3f000080bf02892d3fa7ee013f4fe2dabb982a333ecfcc4cbd9d80533f87f80f3fb1b20a3d79d6b83d570744be6b337a3f000080bf74542d3f23fbfd3e2bc057bc9c15323e80b9d5bc4b723f3f076c063f82fdcf3eec1d48bd321411bf088d523f000080bf6450333f729d003f7db9d5bcc7503f3e80b9d5bc5825d53e51ee4e3f5a25d53eb3cf683d09d0f5be2c18603f000080bf6475333fa4af023fcecc4cbdcbcc4c3ecbcc4cbda397583d7e487f3fa997583d8d184c3d086b63bd61497f3f000080bf02a92d3fcf59073fcecc4cbdb9f5453ea011cdbcf841383d672e5e3f124afd3e5a71a23d9455febe5f405d3f000080bfd4d7333f47de073fcccc4cbdcbcc4c3e989919bea797583d7e487f3fa39758bdb5194cbd106b633d5f497f3f000080bfa0ab143fcf59073fcecc4cbdb9f5453e992a33befe41383d672e5e3f0e4afdbe7c72a2bd9155fe3e5c405d3f000080bff35f0e3f48de073f989919beb9f5453e992a33befa4138bd672e5e3f0e4afdbe56d606be40b2f83eb4375d3f000080bf53a60e3fc3a41f3f999919becbcc4c3ecbcc4cbda79758bd7e487f3fab97583d76f8173dcbb550bdb07d7f3f000080bf63ef2d3f4b201f3f999919beb9f5453ea011cdbcf74138bd672e5e3f124afd3e20d6063e43b2f8beb5375d3f000080bf341e343fc3a41f3f999919becbcc4c3e999919bea89758bd7e487f3fa79758bdadf817bdc5b5503dae7d7f3f000080bf00f2143f4b201f3f9c1532bec7503f3e9c1532be5f25d5be51ee4e3f5a25d5be8e0b00be3323ce3e5d23683f000080bfbcec0e3fc1d4253f989919be982a333eb9f545bef04138bd064afd3e692e5ebfdf3573be60ac563f7808fb3e000080bf92e8093fbb10213f9c1532be9c15323ec9503fbe5a25d5be5a25d53e53ee4ebf4155a5be3d6c433f82380f3f000080bf38960b3f00d5263fc7503fbe9c15323e9c1532be51ee4ebf5f25d53e5625d5be69b062be036ee13e2dc15e3f000080bfecd90e3f6fe7293f982a33beb9f5453e989919be0e4afdbe672e5e3f054238bd00000000f1ea533d3aa87f3f000080bf25f5143f6394253f992a33beb9f5453ecfcc4cbd104afdbe672e5e3fe441383d00000000feea53bd3aa87f3f000080bf88f22d3f6394253f9d1532bec7503f3e80b9d5bc5a25d5be53ee4e3f5a25d53e360b003e4723cebe5b23683f000080bf6cdd333fc1d4253fb9f545be982a333ecfcc4cbd692e5ebf0a4afd3ed241383dfdc4a6bc0ded00becce87d3f000080bfced72d3f685d2b3f9d1532be9c15323e40c057bc787debbedd46eb3e0382423fe8f1963e3c653abf4f6b1e3f000080bf20fc363fffd4263f999919be982a333e60e2dabb4ed907bd5532103f125b533fb329683ea7df4cbf171b0e3f000080bfad8c383fba10213fca503fbe9c15323e80b9d5bc57ee4ebf5125d53e5525d53e40b0623e276ee1be27c15e3f000080bf9cca333f6fe7293fb9f545be982a333e989919be692e5ebf0d4afd3e044238bd6ac4a63c04ed003ecce87d3f000080bf6cda143f685d2b3fcbcc4cbe9999193ecbcc4cbd7e487fbf9b97583d9e97583d72bf273db06a52be4c517a3f000080bf94a62d3f1be32e3fb9f545be9899193ea011cdbc692e5ebfdd41383d0b4afd3e4089d93e1ec3e5be0044493f000080bf20df333f8a4c2d3fcbcc4cbe9999193e989919be7e487fbfa697583da39758bd78bf27bd9d6a523e4c517a3f000080bf32a9143f1be32e3fb9f545be9899193e992a33be692e5ebf0342383d0a4afdbe4089d9be14c3e53e0244493f000080bf3e670e3f8a4c2d3f0ad723befd76b43b06d723bdc3fb81be478c6ebf0cc5843ef7a9253ea2c6643e7511763f000080bffc96243f82d1073e0ad723be2de7193c54b0d0bcbc7973befb4f48bf4a54133fefce803e8fcd053fbf87503f000080bfbc36283fe6be053e9c1532be2bc0573c78b9d5bc026c06bf4d723fbf81fdcf3ed4947a3ee924a63e28e7693f000080bfee4a283fca80f23d0ad723be66562f3bcbcc4cbd414b84befd3c77bfb321ba3c3d09e53cc059833cf5dd7f3f000080bf4518223f385b093e982a33be4fe2da3bcbcc4cbd87f80fbf9d8053bfb8b20a3d000000003be6273deac87f3f000080bf3e58223f40f8f73d992a33be4fe2da3b989919be2dea0fbf978953bf64e40bbdf7a1a4bd811a5d3cec257f3f000080bf1e65093f788dee3d0ad723be60562f3b989919be9b5384be984c77bf0e7c9ebb583802be3c0dee3c05d07d3f000080bf2425093fd3a5043e0ad723be0f48753b89751dbe9a467fbe7f896ebf551a87be553d86be09194abe9cd2713f000080bf6e34083f97b6033e73a520be555c783b72a520be82e272be8fd471bfd41a68bea15e71be297a2ebed6ee743f000080bf4d60073f51ba053e8b751dbe2048753b0ad723be59a682be21686ebf2a2185be61b081bea8d347be728f723f000080bfca8b063fe0cd073e9d1532be2bc0573c9c1532be7b20eabec83043bfc35feabe2607b0beab73a5be4eb6613f000080bf6669033f2095e43d999919be6b562f3b0ad723be4462a8bcf63f77bfd24c84beff6980bea6177bbe39bc6f3f000080bfae7b063f83360b3e999919be4fe2da3b992a33beb2b20abd9c8053bf88f80fbf517f90becc2a08bf70634c3f000080bfb5bf023ff1aa073eb9f545be9911cd3c989919be692e5ebf0a4afdbed04138bdf60c3ebd7a7c1abc7fb67f3f000080bf90b3093f60b0ba3dc7503fbe7bb9d53c78b9d5bc53ee4ebf5725d5be5a25d53ede06993e045aa33e9c3d663f000080bf2882283f58fdcd3d9c1532be7db9d53c20c057bc11a003bf98f1ccbe0231423f23e5063f94e70c3f62c9253f000080bf36842b3f9463e13db9f545be9711cd3ccbcc4cbd692e5ebf0d4afdbefc41383d9d44f7ba882fc03db0de7e3f000080bfb1a6223f2c1bc43dca503fbe7db9d53c9d1532be58ee4ebf4e25d5be4e25d5be41ccafbe5ed776beea61683f000080bfa0a0033fac11c03d9d1532be7bb9d53cc9503fbe5025d5be5125d5be57ee4ebfd4fa19bfbe640abfbb93163f000080bf1d30003fec08d13dcbcc4cbececc4c3d999919be7e487fbf999758bd9b9758bdd2134dbd1eaf59bd14517f3f000080bf1cd0093f56de8d3db9f545bececc4c3d992a33be692e5ebfd04138bd084afdbe4c17f5be5ddf42be866b5b3f000080bfdf78033fceea943dcbcc4cbecccc4c3dcbcc4cbd7e487fbfa79758bda697583d4d65313d231e2c3e371d7c3f000080bf3ec3223f2049973db9f545bececc4c3d9811cdbc672e5ebfec4138bd0e4afd3ec1c5eb3e60ea993e54d0553f000080bf61e1283f6609a33db9f545be9899193ea011cdbc692e5ebfdd41383d0b4afd3ebf9ff73e71889b3eee23523f000080bf60e1283fa058293ccbcc4cbe9999193ecbcc4cbd7e487fbf9b97583d9e97583db0ba7e3d4058463e8ba57a3f000080bf3ec3223fc0ac963bcbcc4cbe9999193e989919be7e487fbfa697583da39758bd611b67bd4d208bbdf7ff7e3f000080bf1dd0093f00000000b9f545be9899193e992a33be692e5ebf0342383d0a4afdbe16e9fcbef3c83bbe8394593f000080bfdf78033f808f613bb9f545bececc4c3d9811cdbc672e5ebfec4138bd0e4afd3e3299cf3e8eb523bf2a37273f000080bf5afd6e3f9405d93ec7503fbe7bb9d53c78b9d5bc53ee4ebf5725d5be5a25d53e9a2e153fb9992abfb420ee3e000080bf5e5d743fca2edf3e9c1532be7db9d53c20c057bc11a003bf98f1ccbe0231423f27bd293f151c3fbf2149633d000080bf3ca6763f0d9dda3e982a33bececc4c3d40e2dabb89f80fbf9fb20abd9c80533f0c791d3fc7512fbf9603c83e000080bf1a3c723f1688d23e992a33be9899193e60e2dabb8af80fbfb1b20a3d9c80533f604f213f332221bf58d1e83e000080bf9d8d603f1e2baf3eb9f545be9899193ea011cdbc692e5ebfdd41383d0b4afd3e9a4bc83e15460dbfcf8a3c3f000080bfde4e5d3f9ca8b53eca503fbe9c15323e80b9d5bc57ee4ebf5125d53e5525d53e0728803ecf44cbbed60d623f000080bf443a5a3f96e8aa3e9d1532be9c15323e40c057bc787debbedd46eb3e0382423fb087093fb08b09bff570263f000080bf22835c3fd956a63e0ad723be9999193e6d562fbb6d4c84be5a5fad3c273f773fa885333fd2fa2ebf0a754f3e000080bf1a33633f24e0a93e0ad723bececc4c3d59562fbbc78584be4329e0bc432d773f61d62f3f224135bf6400283e000080bf96e1743f1c3dcd3e0ad723bec33d1f3e6eca8abb8dbd84be21bb823e2b736e3f959b283fd69c28bf994dba3e000080bfbc39623f69eda73e0ad723be57b0d03c23e719bc86347abea39706bf1796503f86f2323f73882dbf383e69be000080bfb837793f62e9d53e0ad723be2de7193c54b0d0bcbc7973befb4f48bf4a54133f8790293f3f6110bf787efcbe000080bfa20f7c3f3599db3e9c1532be2bc0573c78b9d5bc026c06bf4d723fbf81fdcf3ea34e1e3f2ec829bf40dcd7be000080bf1bef783fca2edf3e999919be982a333e60e2dabb4ed907bd5532103f125b533fcc5c273f59d31cbf0c6fe33e000080bf9d8d603f93829d3e235b21be235b213e37b088bbfeed6cbe7587723e5e8f713f43cf2a3f76cf2abffa83a93e000080bf0e4a623fd856a63e27731ebe0ad7233e639e83bb661a87bebe467f3e7a896e3f61ae283fd6ad28bfc9cbb93e000080bfb85c623f507aa43e999919be0ad7233e74562fbb0a45c6bb6e53843e2a4c773f0bd92e3f975b34bf2f65453e000080bf1a33633f8ccda23ececc4cbd982a333e60e2dabbb2b20a3d8af80f3f9a80533fc0512f3f10791dbf9d03c83e000080bf1a3c723f364b743e999919beb9f5453ea011cdbcf74138bd672e5e3f124afd3e3471153f6f0fc2beccd0373f000080bfde4e5d3f1505973ececc4cbdb9f5453ea011cdbcf841383d672e5e3f124afd3e90b5233f3399cfbe2837273f000080bf5afd6e3f3a50673ecccc4cbd0ad7233e74562fbbbf21ba3c4f4b843efb3c773f6855353fa5952fbf82d72a3e000080bf96e1743f28e17e3e7db9d5bcc7503f3e80b9d5bc5825d53e51ee4e3f5a25d53eb3be403f002b10bf0a5eae3e000080bf5e5d743fcffd5a3e7cb9d5bc9c15323e40c057bc7efdcf3e046c063f4d723f3f8e7c3f3fa34229bf9a3c6d3d000080bf3ca6763f4821643e07d723bd0ad7233e0e77b4bb18c5843ecffb813e448c6e3f511e353fb2ea34bf8a6c8ebb000080bf3ca6763f90ce773e2bc057bc9c15323e80b9d5bc4b723f3f076c063f82fdcf3e43b7263fc5f732bff02897be000080bf1bef783fcefd5a3e54b0d0bc0ad7233e3ae719bc4754133fd679733efd4f483f5289263fc78136bfa80e86be000080bfb837793f9e886d3e2de719bc0ad7233e5cb0d0bcf94f483fc879733e4c54133f3c61103f999029bf4f7efcbe000080bfa20f7c3ff728623ececc4cbdb9f545bea011cdbcf341383d692e5ebf064afd3eb3aa173f6f03d83e31b12f3f000080bf6e916f3ffe542a3f7cb9d5bcc9503fbe80b9d5bc5325d53e54ee4ebf5325d53eada0203f6d36163fb509033f000080bfdac2743fd4b52d3f7db9d5bc9d1532be40c057bc642bcf3e4d9105bfe343403f5e37363fc6ff313f8be3cb3d000080bfba2b773fd28e2b3fcecc4cbd992a33be60e2dabbeaf8003d13ab10bfcf0c533fc711243f55f4243f079cd53e000080bfa2fd723f5846273f989919be992a33be40e2dabbbc2a0ebd8cc10fbfb3a3533ffbd7163ffb19283f2408f13e000080bf3855623f28a0143f989919beb9f545be9811cdbcd94138bd6a2e5ebf064afd3e5ce8023f8191cf3ebdfa413f000080bf03e95e3fceae173f9c1532bec9503fbe78b9d5bc5325d5be54ee4ebf5525d53e38c6b73e82948c3e455e643f000080bf24235c3f9224123f9c1532be9c1532be20c057bc0dc2e9bebc7ee9be6890433f99db013ffe6c123fc905253f000080bf048c5e3f90fd0f3f0ad723bd0ad723be0677b4bb2ca7853ed91881be838b6e3fb3742a3f8ff53e3f24e67a3c000080bfa472773f80a5263fcecc4cbd0ad723be6d562fbb18484c3c5a5184be6948773f876c2a3f4b13393f75433d3e000080bf32c8753f15c8243f57b0d0bc0ad723be38e719bc4754133fcb7973befd4f483fbd211e3f7fe0403fa4c866be000080bf0fde793ff75a293f2bc057bc9c1532be80b9d5bc0231423f0ca003bfa1f1cc3e8ed2253fb369293fc244c1be000080bfbc52793fb2f72d3f2de719bc0ad723be5cb0d0bc1696503f8d347abea697063f4cf2033fd172383f2a87edbe000080bfd48b7c3fb65a2c3f999919be0ad723be5d562fbb2ef292bba35384beb24c773f906d243fb05a3d3ff2b14d3e000080bfc81f653fe421123f6c2c1dbe0ad723bede1a70bb651a87be98467fbe7d896e3fbffb1e3fa8fb313f1648b93e000080bff68a643f487b113ff85820bef75820be9ed46dbb791864be538972be2817723ff446213f198f343f3b6ca63e000080bf9ca9643fdc55103f0ad723be2e811cbe52fb63bb316485be1f9782beda606e3fe4d31e3f8ada313f4c4fba3e000080bf56cb643ffe120f3f0ad723be989919be59562fbb124d84be8fb3a5bc6140773f3b0c2a3fafe2383f0a78453e000080bfc252653f089a0e3f982a33be989919be40e2dabb89f80fbf9fb20abd9c80533f290d1a3fcf222b3f70c1df3e000080bf7ed4623f78cf0b3f992a33becfcc4cbd60e2dabb8af80fbfb3b20a3d9c80533f4bb2143fae303a3fb82cbb3e000080bfae7a753f1a4ef63e0ad723bececc4cbd6d562fbbc98584beb529e03c432d773fc360253f23803f3fd39f1b3e000080bff2f8773f3ae3fb3eb9f545be989919be9811cdbc692e5ebfeb4138bd0d4afd3e3252c03eaa9d173fde7c363f000080bfd8c55f3f4363083fc7503fbe9d1532be78b9d5bc53ee4ebf5725d5be5a25d53e4e2e663e58e0de3e3a2c5f3f000080bf02655c3fb0940d3fb9f545becfcc4cbda011cdbc692e5ebfdd41383d0d4afd3ee915c63e77942f3fabca1d3f000080bf086c723fb075ef3eca503fbe80b9d5bc80b9d5bc57ee4ebf5125d53e5325d53e1286133f5249343f0251d43e000080bf45f6773ff2e9e93e9d1532be80b9d5bc40c057bc0da003bf9af1cc3e0431423ff0b6363fb8ac303fa3f0f43d000080bf471d7a3fb2bbee3e0ad723be5cb0d0bc36e719bc96347abea397063f1696503f438e3c3fd9ab253f056d49be000080bfd48b7c3f81b7f33e6b562fbb0ad723bececc4cbd432d773fc08584be8329e03cc825df3bb4c9a3bd8f2c7fbf000080bfd2dcbb3e839ebb3e2de719bc0ad723be5cb0d0bc1696503f8d347abea697063f1fede93eae4393be407c57bf000080bfe1bbaf3e1601be3e2bc057bc9c1532be80b9d5bc0231423f0ca003bfa1f1cc3ed7b1963e702e8ebebd1a6abf000080bfd0dbaf3e443fc43e4fe2dabb992a33becfcc4cbd9d80533f87f80fbfb5b20a3ddbc75d3cfcf224bdd4c47fbf000080bf59aabb3ee750c23e7cb9d5bcc9503fbe80b9d5bc5325d53e54ee4ebf5325d53e67a98f3e7881a4be408a67bf000080bfd0dbaf3ebc62cd3e7db9d5bc9d1532be40c057bc642bcf3e4d9105bfe343403f3b30043fc8260cbfeb9428bf000080bf2fa3a93ee9d4c83e4fe2dabb992a33be989919be9c80533f88f80fbfaab20abd3fce60bc04d7233d5fc57fbf000080bf9c9ced3edf4ec23e60562fbb0ad723be989919beb23e773f254c84be7b2eb0bc00000000ee7da23d65317fbf000080bf15cfed3e7b9cbb3e2bc057bc9d1532be9c1532be3d22423f7518ecbeb7e7ebbe426eb3be687c9d3e377762bf000080bf9fb0f93e443cc43e93ec93bb0ad723bec73f20beea776e3f129284bea5c482beb67151be12b5543e75e174bf000080bfce15f13e5743bc3e9911cdbcb9f545be989919be064afd3e6a2e5ebfe64138bd1c1855bda6ffb43c3b977fbf000080bf9c9ced3ed749cf3e9711cdbcb9f545becfcc4cbd064afd3e6a2e5ebfe841383d4eed533d8d55b6bcf6977fbf000080bf59aabb3edf4bcf3e4fe2dabb989919be992a33be9644533fefe305bd195510bf23fe09bfff20813e41bb4dbf000080bfef87fa3e2581b93e1cd291bbcddf21beccdf21be57bb713f82106cbe7da070be4cee44be2fa9453e395076bf000080bf43e9f13e3b90bb3ec3078dbb097d1fbe0ad723be7f896e3f501a87bea7467fbe2f874cbe74964d3e058575bf000080bfc6e8f23ea6b0ba3e6b562fbb999919be0ad723bea54b773f9a97efbb125384be380c80be9496683ea7f270bf000080bfc0fbf23ece15b83e60562fbbcecc4cbd0ad723befd3c773fa121ba3c3a4b84be1bd281be6cd8953e2e076cbf000080bf24c8f43e14d5943e4fe2dabbcfcc4cbd992a33be9c80533fa9b20a3d88f80fbfcfbb0bbfb144973e42b948bf000080bf5254fc3e6c40963e2bc057bc80b9d5bc9d1532be4b723f3f82fdcf3e066c06bf61a622bfaa91553eaf573ebf000080bf2e59fc3ecf1f903ef576b4bb0ad723bd0ad723be478c6e3f0dc5843ebbfb81bea49caabe5b2fab3ed9ae61bf000080bf3803f53ec74f923e2be719bc5cb0d0bc0ad723bef94f483f4c54133fc17973be81e1e7bef420873edc025abf000080bffc57f53ed2918e3ecccc4cbdcbcc4cbecbcc4cbda397583d7e487fbfa397583dd79ee33dc4793fbde0217ebf000080bf8afebb3e0182da3ececc4cbdb9f545bea011cdbcf341383d692e5ebf064afd3e18997c3ee8c0f0be76ed58bf000080bfeca4af3eaf27d83e989919beb9f545be9811cdbcd94138bd6a2e5ebf064afd3e9b227b3eedb2fabe3c3356bf000080bf5071b13ecea0fb3e999919becbcc4cbecbcc4cbda39758bd7e487fbfa397583d8dbf063e718173bd2e517dbf000080bfeecabd3e22fbfd3ececc4cbdcbcc4cbe999919be9e97583d7e487fbfa39758bd526ae4bdd3613f3d181f7ebf000080bfcef0ed3efa7fda3e999919becbcc4cbe989919bea39758bd7e487fbf9e9758bd7b2e07bec295733d694d7dbf000080bf32bdef3e1af9fd3ececc4cbdb9f545be992a33bef041383d6a2e5ebf064afdbefffa7cbecdb8f03e94e858bf000080bfee87fa3ea324d83e999919beb9f545be992a33beeb4138bd6a2e5ebf064afdbe9a8c7bbe59aefa3ece2c56bf000080bf5254fc3ec49dfb3e7db9d5bcc9503fbe9c1532be5325d53e57ee4ebf5025d5be09cc8fbeb46da43e648867bf000080bf9eb0f93eba5fcd3e7bb9d5bc9c1532bec9503fbe5a25d53e4e25d5be54ee4ebfd90012bf0ea4123f73b716bf000080bf1d30003f60d1c83e4fe2dabb989919be992a33be9644533fefe305bd195510bfce262abda0fa7d3f2655f2bd000080bfb8512d3deff3253f2bc057bc9d1532be9c1532be3d22423f7518ecbeb7e7ebbede2f753e8fbd5a3fde0fecbe000080bfb04f9b3c4c93273f7bb9d5bc9c1532bec9503fbe5a25d53e4e25d5be54ee4ebfbf2bb83b24e3633fd73fe9be000080bfb84f9b3c6dce2a3f9711cdbc989919beb9f545be064afd3ee94138bd692e5ebf171125bdeb137f3f5ed098bd000080bfb8512d3dc98a2a3f9911cdbccfcc4cbdb9f545be044afd3ee541383d6a2e5ebf8110253dec137f3f31d0983d000080bf175a0f3eca8a2a3f4fe2dabbcfcc4cbd992a33be9c80533fa9b20a3d88f80fbf50a5253d34f77d3f1101f43d000080bf175a0f3eeff3253f2bc057bc80b9d5bc9d1532be4b723f3f82fdcf3e066c06bff598b2bdcb1c583f4466073f000080bf8e44273e4c93273f7db9d5bc80b9d5bcc9503fbe4f25d53e5625d53e55ee4ebfb651863c4bac623fe8cded3e000080bf8e44273e6dce2a3f7cb9d5bc40c057bc9c1532be9df1cc3e0331423f0ca003bfa2d58fbd5eb6153f0ae14e3f000080bf1231343e6dce2a3fcecc4cbd60e2dabb992a33bebab20a3d9a80533f8af80fbf8fabd2bbbc18103f8596533f000080bf84ae3a3e0bc9303fcecc4cbdcbcc4cbdcbcc4cbe9e97583da797583d7e487fbf29558b3baea27f3f99d0593d000080bf185a0f3e0bc9303fcccc4cbd989919becbcc4cbea097583d9e9758bd7e487fbf425b8bbbaea27f3f9ad059bd000080bfb8512d3d0ac9303fcecc4cbda011cdbcb9f545bef041383d0d4afd3e692e5ebf0000000034685e3f348bfd3e000080bf1b53283e0bc9303f989919bea011cdbcb9f545beee4138bd0a4afd3e692e5ebf06f97d3b486d5e3f6377fd3e000080bf1a53283e75ca493f989919be60e2dabb992a33beb7b20abd9c80533f8bf80fbf8aabd23bba18103f8596533f000080bf84ae3a3e75ca493f999919becbcc4cbdcbcc4cbea39758bda797583d7e487fbfa65b8bbbaea27f3fa5d0593d000080bf175a0f3e76ca493f9c1532be80b9d5bcc9503fbe5825d5be5a25d53e51ee4ebf1ca6923dd8b9663f20c6da3e000080bf8e44273e13c54f3fcecc4cbd992a33beb9f545bef141383d064afdbe6a2e5ebf0000000034685e3f328bfdbe000080bf48db923c0bc9303f7db9d5bcc9503fbe9c1532be5325d53e57ee4ebf5025d5be6bfaf53d7ab3003f5a265bbf000080bf20aecf3b6dce2a3fcecc4cbdb9f545be992a33bef041383d6a2e5ebf064afdbe8ba3493cecc5fd3ebf515ebf000080bf000000000bc9303f999919beb9f545be992a33beeb4138bd6a2e5ebf064afdbe87a349bcebc5fd3ebd515ebf000080bf0000000075ca493f999919be992a33beb9f545bee94138bd064afdbe6a2e5ebf0000000034685e3f328bfdbe000080bf48db923c75ca493f999919be999919becbcc4cbe9f9758bda39758bd7e487fbf755b8b3baea27f3fa1d059bd000080bfb4512d3d76ca493f9d1532be9d1532bec9503fbe5025d5be5525d5be57ee4ebfe834b8bb28e3633fcb3fe9be000080bfa84f9b3c13c54f3f9d1532bec9503fbe9c1532be5625d5be58ee4ebf4a25d5be57faf5bd78b3003f5c265bbf000080bf20aecf3b13c54f3f982a33becfcc4cbdb9f545be064afdbefa41383d692e5ebfd50f25bdec137f3f0fd0983d000080bf175a0f3eb608503f992a33be989919beb9f545be064afdbed34138bd6a2e5ebf3210253dec137f3f10d098bd000080bfb4512d3db608503fca503fbe9c1532be9d1532be58ee4ebf4a25d5be5225d5beefb469be5b965f3f2f48dcbe000080bfb04f9b3c3400533fb9f545be989919be992a33be692e5ebfd04138bd0b4afdbed76dc73cdea77d3feffe07be000080bfb4512d3d919f543fb9f545becfcc4cbd992a33be692e5ebf0442383d0a4afdbeec6cc7bce0a77d3fd6fe073e000080bf175a0f3e909f543fc7503fbe80b9d5bc9c1532be51ee4ebf5f25d53e5525d5be2cb5693e5b965f3f1b48dc3e000080bf8e44273e3400533f54b0d0bc3ae719bc0ad723bea397063f1696503f9b347abe9ae73b3f582894be414a1d3f000080bf28625a3f0c78f13e2be719bc5cb0d0bc0ad723bef94f483f4c54133fc17973be8a791a3f22461bbf0f87043f000080bf24235c3f8aaced3e2bc057bc80b9d5bc9d1532be4b723f3f82fdcf3e066c06bf0b98283f6bc50dbf1b6f023f000080bffc11593ff2e9e93e7cb9d5bc40c057bc9c1532be9df1cc3e0331423f0ca003bf7aef5d3f44c906beb721f63e000080bf3aa9573f8af6ec3ecccc4cbd77562fbb0ad723be9629e03c432d773fca8584becd833b3fe598203e2198293f000080bfe199563fb2edf83ececc4cbd60e2dabb992a33bebab20a3d9a80533f8af80fbfefa3463f8874aa3e442a093f000080bfecc9533f56dbf33e999919be6d562fbb0ad723be6da6a8bce93f773fd54c84bed91c2e3f11d64f3efc55343f000080bfa679453f43f50c3f989919be60e2dabb992a33beb7b20abd9c80533f8bf80fbf8d5e1d3f69faeb3eaddb233f000080bfb2a9423f156c0a3f9c1532be40c057bc9c1532be6830eabe5427433f526feabebb17f53e151f253f8b7d183f000080bf6a583e3fe4dc0e3f989919bea011cdbcb9f545beee4138bd0a4afd3e692e5ebf65d5d93e26a84b3f60e1dc3e000080bfd5603e3f9af1073f9c1532be80b9d5bcc9503fbe5825d5be5a25d53e51ee4ebfe3828e3ee199673f4829a53e000080bf31543b3f331e0d3fd38d1dbe530077bb0ad723be91a882be7d686e3f771c85be895f243f9480ba3e87b02c3f000080bff3be443f72a50d3fc7503fbe80b9d5bc9c1532be51ee4ebf5f25d53e5525d5bea2955c3e4e015e3f94dbe53e000080bf31543b3fc199113f982a33be60e2dabb989919bef2ed0fbf2b87533fa7ae0bbd31331b3f9334e13eb69d293f000080bfb2a9423f7d15133fc1b120be1b0e7abbc1b120be95a672be7bdc713f61d567bebd12283ff0ada73efaf22d3f000080bf6fbe443f9db60e3f0ad723be410077bbd28d1dbebc467fbe7f896e3f431a87bec653243f29dcb93e00e82c3f000080bff4be443fa3c60f3f0ad723be74562fbb999919bea15384be8d4c773fbf4fa2bb8b8b333f1bc0433e1acc2f3f000080bfa679453f646d103f0ad723be6d562fbbcecc4cbd4b4b84befb3c773fb121ba3caff5343faf22313e9f942f3f000080bfe199563f42a0223fb9f545bea011cdbc989919be672e5ebf0e4afd3e004238bde048cd3e2548403ff544063f000080bfd6603e3ffef8163fcbcc4cbecbcc4cbd989919be7e487fbfa797583d9f9758bd4ce2df3ca1776a3fb10ecd3e000080bf70ae3b3f183f193fb9f545becfcc4cbd992a33be692e5ebf0442383d0a4afdbe4e3fb9bda805773f6b587c3e000080bfae8c383fdb99133fcbcc4cbecbcc4cbdcbcc4cbd7e487fbf9d97583d9e97583de31b943d03a55c3ff77c003f000080bfabce4c3ff7712b3fb9f545bea011cdbccfcc4cbd692e5ebf0f4afd3ed041383daf5ad93eb80e313ffa95153f000080bf10814f3fdd2b293f992a33be60e2dabbcfcc4cbd8bf80fbf9c80533f98b20a3dfdf71b3f42cec53e8747313f000080bfecc9533f5c48253f9d1532be40c057bc80b9d5bc026c06bf50723f3f80fdcf3ea5c3303faa34c33de08f373f000080bf3aa9573fb0c3293f0ad723be0677b4bb0ad723bdc7fb81be448c6e3f18c5843ef7293d3f0fe7623c43742c3f000080bf3623583f2e94243f0ad723be36e719bc5cb0d0bccc7973befb4f483f4954133f6584453fd6c554be43ed193f000080bf28625a3f9967273f0ad723be5cb0d0bc36e719bc96347abea397063f1696503fc3ea443f1826d0bef869fc3e000080bf24235c3f10162b3f9d1532be80b9d5bc40c057bc0da003bf9af1cc3e0431423f27ac413f10f551bea3f81e3f000080bffc11593ff2b82c3fca503fbe80b9d5bc80b9d5bc57ee4ebf5125d53e5325d53e6b7c153fac14f43ee236283f000080bf01a5543f8d802c3fb9f545becfcc4cbda011cdbc692e5ebfdd41383d0d4afd3e6aaaaf3e6d43463f0610083f000080bf253a523f1ae32e3f999919becbcc4cbecbcc4cbda39758bd7e487fbfa397583da6a07fbf68fb553d1af05abc000080bf000040325fd1763f989919beb9f545be9811cdbcd94138bd6a2e5ebf064afd3e07317ebf2c05bf3dd134963d000080bfe074973b8aff7c3f9c1532bec9503fbe78b9d5bc5325d5be54ee4ebf5525d53ea01861bf28ebf23ed2d42b3d000080bf77afd13c71e17c3f982a33beb9f545becbcc4cbd064afdbe6a2e5ebff641383d0d765ebf0245fd3e491151bc000080bf72dfb23cb1f8763f992a33beb9f545be989919be064afdbe692e5ebfdd4138bd28515ebf14c7fd3eba134ebc000080bf70dfb23c76fe5d3f999919becbcc4cbe989919bea39758bd7e487fbf9e9758bd46747fbf3e70603d5a3a11bd000080bf0000000023d75d3f9d1532bec9503fbe9c1532be5625d5be58ee4ebf4a25d5be080960bfe9f9f53e6e4d6cbd000080bf76afd13c68f5573f999919beb9f545be992a33beeb4138bd6a2e5ebf064afdbece8f7cbfbf75ee3d4a9eeabd000080bfd074973b628c573fb9f545be992a33be989919be692e5ebf0a4afdbed54138bd62c6fdbe82515e3f39614b3c000080bf8a47413d9afe5d3fc7503fbe9d1532be78b9d5bc53ee4ebf5725d5be5a25d53e9ff3f2bed315613f9d842cbd000080bf80f3313d8be17c3f9c1532be9c1532be20c057bc0dc2e9bebc7ee9be6890433fddfd34bf090c353f00000000000080bfb9760d3d0000803fb9f545be992a33becbcc4cbd692e5ebf0b4afdbefe41383d0746fdbeec755e3ffc4e4e3c000080bf8b47413dd6f8763fca503fbe9c1532be9d1532be58ee4ebf4a25d5be5225d5bef0f1f5beea0b603f18a46b3d000080bf8af3313d82f5573f9d1532be9d1532bec9503fbe5025d5be5525d5be57ee4ebf470135bf9f08353f00000000000080bfb7760d3d909f543fcbcc4cbe989919be999919be7e487fbf969758bd999758bda2eb5fbd4c7a7f3fff15073d000080bfd6738d3d86d75d3fb9f545be989919be992a33be692e5ebfd04138bd0b4afdbe9eb7b1bdf38a7e3fa0397d3d000080bf5e05843db88c573fcbcc4cbe999919becbcc4cbd7e487fbfa49758bda397583d636c53bd33947f3f706acc3c000080bfd4738d3dc3d1763fb9f545be989919be9811cdbc692e5ebfeb4138bd0d4afd3e16b370bdc3897f3f91f449bc000080bf6105843de1ff7c3fb9f545becfcc4cbda011cdbc692e5ebfdd41383d0d4afd3ea19d643d2c987f3f6fa9e93b000080bfacdd083eed297c3fcbcc4cbecbcc4cbdcbcc4cbd7e487fbf9d97583d9e97583d70805f3ddb7e7f3fcbcdfd3c000080bfe7940d3ecffb753fcbcc4cbecbcc4cbd989919be7e487fbfa797583d9f9758bdd9e4503d837f7f3f169e143d000080bfe7940d3e93015d3fb9f545becfcc4cbd992a33be692e5ebf0442383d0a4afdbec645b93c8d997f3fff5b513d000080bfabdd083ec5b6563f9899193eb9f545bea011cdbcf341383d692e5ebf084afd3ef6450dbfaf4bc83ee18a3c3f000080bfcea83b3f32a6433f9c15323ec9503fbe80b9d5bc4f25d53e55ee4ebf5725d53ead44cbbe2528803ed90d623f000080bf3494383f3506493f9c15323e9d1532be40c057bc5b81ee3eb082eebe6d98403f8b2f08bf732f083f8aa6283f000080bf12dd3a3f144f4b3f9899193e992a33be60e2dabb35eb033d0e7510bffa2f533f4c2121bf8934213f261ee93e000080bf8de73e3ff0e4463fcfcc4c3d992a33be40e2dabbbdf800bd12ab10bfd00c533fd3632fbf57de1c3fd5a8c93e000080bf0996503f7536353fcfcc4c3db9f545be9811cdbcda4138bd692e5ebf0a4afd3e91b523bf2999cf3e2b37273f000080bf4a574d3fb6f7313f80b9d53cc9503fbe78b9d5bc5325d5be54ee4ebf5525d53ec9992abf942e153f9220ee3e000080bf4eb7523f1be32e3f80b9d53c9c1532be20c057bc682bcfbe499105bfe443403f47833fbf3e44293fca92663d000080bf2c00553ffa2b313f20731e3e0ad723be1d9e83bb6d1a873eb7467fbe7a896e3f0aae28bf2eae283fcbcbb93e000080bfaab6403fce604a3f9899193e0ad723be6d562fbba344c63b5c5384be2e4c773f0dd92ebf975b343f1065453e000080bf0a8d413f6d8a493fcecc4c3d0ad723be5d562fbb6b474cbc595184be6b48773f5a4235bf1c352f3fcf24323e000080bf863b533ff2db373f06d7233d0ad723befd76b4bb20a785bec91881be868b6e3f7ff434bf5f13353f3103d9bb000080bf2c00553f4b17363f5cb0d03c0ad723be23e719bc4d5413bfb57973bef94f483f498926bfce81363faf0e86be000080bfa891573fcf85333f40c0573c9d1532be78b9d5bc023142bf0fa003bf9bf1cc3ebf9f26bf997d203f513adbbe000080bf0a49573f1be32e3f38e7193c0ad723be54b0d0bc189650bf87347abea197063f8d3508bf45e22c3fb2be02bf000080bf92695a3fe6ad303f1e5b213e205b21befaaf88bb5edf833ee7e182beaa8c6e3f1cae28bf1cae283fc7cbb93e000080bf00a4403f144f4b3f0ad7233ebd3d1fbe37ca8abbb7467f3e6d1a87be7a896e3f1eae28bf1aae283fcacbb93e000080bfad93403f5d1a4c3f992a333e989919be60e2dabba482103f852d03bd2627533f923121bf4121213f7c26e93e000080bf8de73e3f37b94f3fc9503f3e9c1532be80b9d5bc54ee4e3f5025d5be5d25d53e322880be9f44cb3edb0d623f000080bf3494383ff2974d3fb9f5453e989919bea011cdbc692e5e3ff04138bd0d4afd3ea14bc8be0c460d3fd48a3c3f000080bfcea83b3ff6f7523f0ad7233e999919be77562fbb2f53843e70cae5bbc54b773fd44d34bfaedb2e3fc808463e000080bf0a8d413fba134d3fb9f5453ecfcc4cbda011cdbc692e5e3ff041383d0d4afd3e2299cfbe9fb5233f1f37273f000080bf4a574d3f72a6643f992a333ecfcc4cbd60e2dabb8af80f3fb7b20a3d9c80533f09791dbfcc512f3f9203c83e000080bf0996503fb367613f0ad7233ececc4cbd6d562fbb464b843ec021ba3cfd3c773f9c952fbf7255353f69d72a3e000080bf863b533f36c25e3f9c15323e80b9d5bc40c057bc026c063f82fdcf3e4e723f3f964229bf9b7c3f3f5e3b6d3d000080bf2c00553f2e72653fc9503f3e80b9d5bc80b9d5bc53ee4e3f5a25d53e5a25d53efd2a10bfb9be403ff35dae3e000080bf4eb7523f0cbb673f0ad7233e07d723bd0e77b4bbcdfb813e1bc5843e428c6e3fa5ea34bf5e1e353f01718ebb000080bf2c00553fdc86603f9c15323e40c057bc80b9d5bc026c063f4e723f3f82fdcf3ec6f732bf40b7263fff2897be000080bf0b49573f0cbb673f0ad7233e5cb0d0bc3ae719bcd179733e4a54133ffa4f483fb18136bf6189263fd30e86be000080bfa891573f5818633f0ad7233e3ae719bc5cb0d0bcd179733efa4f483f4a54133fac9029bf3661103f317efcbe000080bf92695a3f42f0653f9c15323ec9503fbe80b9d5bc4f25d53e55ee4ebf5725d53e78ba8fbec377a43e5589673f000080bf6a72283f7e70b23ec9503f3e9c1532be80b9d5bc54ee4e3f5025d5be5d25d53ebeeda3be2dac903e2a7c673f000080bf3a72283ff593bb3e9c15323e9d1532be40c057bc5b81ee3eb082eebe6d98403f84d907bf5b85083f78a6283f000080bfa38e2b3f93feb63eb9f5453e992a33becfcc4cbd692e5e3f064afdbef541383ddb2db2bc218f573da8957f3f000080bfec8a223fd881bd3ecbcc4c3e989919becbcc4cbd7e487f3f9b9758bda697583dd11f3fbd0f9be63d60177e3f000080bf9a60223fa8adc83eb9f5453e989919bea011cdbc692e5e3ff04138bd0d4afd3ef485f0bef35e7f3edbc9583f000080bf758d283f0c4fc63ecbcc4c3ecbcc4cbdcbcc4cbd7e487f3fa297583da297583de14e78bdb55b213e30537c3f000080bfb079213f4eeeeb3eb9f5453ecfcc4cbda011cdbc692e5e3ff041383d0d4afd3e6f6cf8be5598943e3728533f000080bf8ba6273fb28fe93ec9503f3e80b9d5bc80b9d5bc53ee4e3f5a25d53e5a25d53e45780abfbad17b3ee3e84d3f000080bfe41c273f4db0ef3eb9f5453ea011cdbccfcc4cbd692e5e3f0a4afd3eeb41383d456523bed07c443e65e6773f000080bfb530213fe65cf23ecbcc4c3ecbcc4cbd999919be7e487f3fa397583da09758bdd44e783d8d5b21be30537c3f000080bf8e80083f4eeeeb3eb9f5453ea011cdbc989919be692e5e3f0d4afd3eee4138bd2365233e8a7c44be6be6773f000080bf9337083fe65cf23ec9503f3e80b9d5bc9d1532be54ee4e3f5b25d53e5525d5be3b780a3f51d17bbef1e84d3f000080bf7c32023f4eb0ef3eb9f5453ecfcc4cbd992a33be692e5e3fea41383d064afdbe696cf83e3f9894be3b28533f000080bf0a35023fb28fe93ecbcc4c3e999919be989919be7e487f3f9e9758bd9b9758bdc61f3f3d029be6bd60177e3f000080bf7767093fa8adc83eb9f5453e989919be992a33be6a2e5e3fea4138bd044afdbeed85f03ed75e7fbedec9583f000080bff41b033f0c4fc63ec9503f3e9d1532be9c1532be55ee4e3f5625d5be4f25d5beb6eda33e1dac90be2d7c673f000080bfd387033ff693bb3eb9f5453e992a33be989919be692e5e3f064afdbeed4138bd802eb23c828e57bdaa957f3f000080bfca91093fd881bd3e992a333eb9f545be989919be064afd3e692e5ebfed4138bda981543de4abb5bc9b977f3f000080bf0e92093fe186b03e992a333eb9f545becfcc4cbd064afd3e6a2e5ebff041383dac8154bde6abb53c9b977f3f000080bf308b223fe086b03e9c15323ec9503fbe9c1532be4d25d53e57ee4ebf5525d5be4eba8f3ed677a4be5689673f000080bf0288033f7e70b23e9d15323e9c1532bec9503fbe5a25d53e4e25d5be54ee4ebf4dfa113f97aa12bf72b7163f000080bf1d30003f94feb63e9899193ecbcc4cbe999919be9e97583d7e487fbf9f9758bdf903e43dd96d3fbd7f207e3f000080bf2f68093fba50a53e9899193eb9f545be992a33bef041383d6a2e5ebf064afdbe47c97c3eebbcf0be0feb583f000080bf931c033f8eaba73e9999193ecbcc4cbecbcc4cbda297583d7e487fbfa397583d0e04e4bdd96d3f3d7d207e3f000080bf5161223fba50a53e9899193eb9f545bea011cdbcf341383d692e5ebf084afd3e78c97cbee6bcf03e0ceb583f000080bf148e283f8eaba73ecfcc4c3db9f545be9811cdbcda4138bd692e5ebf0a4afd3eff567bbeb0b0fa3e0e30563f000080bf9ba8273f5b32843ecbcc4c3dcbcc4cbecbcc4cbda39758bd7e487fbfa297583dadf606be8d8b733d504f7d3f000080bfd87b213f86d7813ecbcc4c3dcbcc4cbe989919bea39758bd7e487fbf9e9758bdbef6063e8c8b73bd4e4f7d3f000080bfb682083f86d7813ecbcc4c3db9f545be992a33beed4138bd692e5ebf064afdbe0e577b3ea9b0fabe0e30563f000080bf1937023f5b32843e0ad7233e1877b4bb06d723bdc8fb813e448c6e3f19c5843e44d526bfef7b08bd05fc413f000080bf3471773fd9a1343f0ad7233e3ae719bc5cb0d0bcd179733efa4f483f4a54133ff5043fbfc8c06dbeb2bb1f3f000080bffe677a3f7792323f9c15323e40c057bc80b9d5bc026c063f4e723f3f82fdcf3e9a443fbf91be343e870b243f000080bf0c50783f2464303f0ad7233e77562fbbcecc4cbd474b843efd3c773fcf21ba3cbd1527bf74f4203e3bbc3d3f000080bf1865753f520a363f992a333e60e2dabbcfcc4cbd8af80f3f9c80533fb8b20a3dacb121bf253bce3e2095293f000080bf6c44733fac95333f992a333e60e2dabb989919be2eea0f3f9789533f8ae40bbd0c702bbfd346f53e8646113f000080bf1002603f3482433fc9503f3e80b9d5bc80b9d5bc53ee4e3f5a25d53e5a25d53e7d8816bf5e35093f50141b3f000080bfaee1763f1be32e3fb9f5453ea011cdbccfcc4cbd692e5e3f0a4afd3eeb41383d4bf9dfbee7de373feb830a3f000080bf0a3c713fc572313f0ad7233e6d562fbb989919bea053843e984c773fe77b9ebb862b36bf836a463ecae22c3f000080bfbc22623fdaf6453fb9f5453ea011cdbc989919be692e5e3f0d4afd3eee4138bd701fddbe36d44b3f1bf1d83e000080bfaef95d3f4d5f413f0ad7233efc4775bb87751dbeb1467f3e7c896e3f621a87be3c4c2fbf677cb93e82e1213f000080bfa274613f43a2463f72a5203e465c78bb71a520bec1e2723e83d4713f631b68be21cf2fbfd9f9a73e400d263f000080bf5a56613fd3b2473f87751d3e0e4875bb0ad723be6aa6823e1f686e3f322185be170f2fbfbb56ba3effe4213f000080bf7736613fc9c1483f9c15323e40c057bc9c1532be7520ea3ec830433fcd5feabeead21abfeedc243f9de1ef3e000080bfefd75b3f1dee473fc9503f3e80b9d5bc9d1532be54ee4e3f5b25d53e5525d5beeda3abbe0220683f99fa823e000080bf91695a3f146d463f9999193e77562fbb0ad723be5362a83cf43f773fdc4c84be6b1231bffe294d3e16a0313f000080bff7be613f185f493f9899193e60e2dabb992a33beb8b20a3d9c80533f8bf80fbf793c31bf05b6d93e7c3e153f000080bff7085f3ff4034c3fcecc4c3d6d562fbb0ad723be8c29e0bc412d773fcd8584be292f2ebf89d22f3e3162363f000080bf9e1b713f01855b3fcfcc4c3d60e2dabb992a33beb7b20abd9c80533f8af80fbfcc9435bf66ccc03ebf8c183f000080bf9e656e3fdc295e3f80b9d53c40c057bc9c1532be9cf1ccbe0231423f0fa003bf0c9e34bfb2d7d23df07e333f000080bf3b8d723fc0c1623f5cb0d03c3ae719bc0ad723bea59706bf1696503f9b347abec6081cbfe55224be10c0463f000080bfd429753f5968603fcfcc4c3da011cdbcb9f545beee4138bd0b4afd3e692e5ebfe3da3abf03af133f2fbbbb3e000080bf20a66b3fc947623f80b9d53c80b9d5bcc9503fbe5825d5be5825d53e54ee4ebf586241bf3a3eac3e3ef30f3f000080bff49d703fbea7653f3ae7193c5cb0d0bc0ad723befa4f48bf4a54133fcd7973be89320bbf1f0ce4be6218363f000080bfb252783f625f643f40c0573c80b9d5bc9c1532be4d723fbf84fdcf3e026c06bfce4227bf08c89ebed4cb303f000080bf2517753f50f1653f1877b43b06d723bd0ad723be448c6ebf19c5843ecafb81be06b3b9beab5024bf02f62c3f000080bfe68a793fec05663f77562f3bcecc4cbd0ad723befd3c77bffd21ba3c3c4b84beead556be2b7927bf89053a3f000080bffe677a3f1730673f60e2da3bcfcc4cbd992a33be9c8053bfd2b20a3d8af80fbf8a08e6be7f5324bf94121f3f000080bf94e8763f31d8683fb9f5453e989919be992a33be6a2e5e3fea4138bd044afdbe566dc7bcdea77d3fe4fe07be000080bff266393f00000000c9503f3e9d1532be9c1532be55ee4e3f5625d5be4f25d5be19b5693e5b965f3f1d48dcbe000080bf546c333f20aecf3b9d15323e9c1532bec9503fbe5a25d53e4e25d5be54ee4ebf8439b83b2be3633fbe3fe9be000080bf546c333fa84f9b3c992a333e989919beb9f545be044afd3eea4138bd6a2e5ebf051025bdec137f3f12d098bd000080bff266393f48db923c992a333ecfcc4cbdb9f545be064afd3eed41383d6a2e5ebf4a10253dec137f3f28d0983d000080bf5c68523f48db923cb9f5453ecfcc4cbd992a33be692e5e3fea41383d064afdbe806dc73cdea77d3fecfe073e000080bf5c68523f00000000c9503f3e80b9d5bc9d1532be54ee4e3f5b25d53e5525d5be6da913be3558533f9faa0b3f000080bffa62583f40aecf3b9c15323e80b9d5bcc9503fbe4e25d53e5a25d53e54ee4ebf3952863c49ac623fedcded3e000080bffa62583fb84f9b3c9c15323e40c057bc9c1532be7520ea3ec830433fcd5feabe0ba1cebd7d4e0e3fa33a533f000080bf1b9e5b3fb84f9b3c9899193e60e2dabb992a33beb8b20a3d9c80533f8bf80fbf8cabd2bbbb18103f8596533f000080bf773d5d3fb8512d3d9899193ecbcc4cbdcbcc4cbe9997583da697583d7e487fbf16558b3baea27f3f97d0593d000080bf5c68523fb8512d3d9999193e989919becbcc4cbe9d97583d9d9758bd7e487fbf3f528bbbaea27f3f89d059bd000080bff266393fb4512d3d9899193ea011cdbcb9f545bef041383d0d4afd3e692e5ebf0000000032685e3f338bfd3e000080bf9da6583fb8512d3dcfcc4c3da011cdbcb9f545beee4138bd0b4afd3e692e5ebfd3147e3b496d5e3f6177fd3e000080bf9da6583f175a0f3ecfcc4c3d60e2dabb992a33beb7b20abd9c80533f8af80fbf8eabd23bba18103f8596533f000080bf773d5d3f175a0f3ecbcc4c3dcbcc4cbdcbcc4cbea09758bda297583d7e487fbf01548bbbaea27f3f8ed0593d000080bf5c68523f175a0f3e80b9d53c80b9d5bcc9503fbe5825d5be5825d53e54ee4ebf18a6923dd8b9663f1cc6da3e000080bffa62583f8d44273e9899193e992a33beb9f545bef041383d064afdbe6a2e5ebf0000000035685e3f2e8bfdbe000080bfb028333fb4512d3d9c15323ec9503fbe9c1532be4d25d53e57ee4ebf5525d5be56faf53d7db3003f59265bbf000080bf3331303fb04f9b3c9899193eb9f545be992a33bef041383d6a2e5ebf064afdbe8fa3493ceac5fd3ebf515ebf000080bfd6912e3fb4512d3dcbcc4c3db9f545be992a33beed4138bd692e5ebf064afdbe87a349bcebc5fd3ebd515ebf000080bfd6912e3f175a0f3ecbcc4c3d992a33beb9f545beeb4138bd064afdbe6a2e5ebf0000000034685e3f308bfdbe000080bfb028333f175a0f3ecbcc4c3d999919becbcc4cbe9e9758bda09758bd7e487fbf50558b3baea27f3f91d059bd000080bff266393f175a0f3e78b9d53c9d1532bec9503fbe5125d5be5525d5be57ee4ebf0535b8bb28e3633fcb3fe9be000080bf546c333f8e44273e78b9d53cc9503fbe9c1532be5825d5be57ee4ebf4925d5be5bfaf5bd78b3003f5c265bbf000080bf3231303f8e44273ea011cd3ccfcc4cbdb9f545be084afdbefb41383d692e5ebf3c1025bdec137f3f2dd0983d000080bf5c68523f1a53283e9811cd3c989919beb9f545be064afdbed54138bd6a2e5ebf4310253dec137f3f16d098bd000080bff266393f1b53283e20c0573c9c1532be9d1532be509042bf3566ebbedb2eebbefaf274be28e55a3fb98cebbe000080bf546c333f1331343e40e2da3b989919be992a33be205f53bf673708bd0c2c10bf43fd273d08f97d3fc71ff3bd000080bff266393f84ae3a3e60e2da3bcfcc4cbd992a33be9c8053bfd2b20a3d8af80fbfa9a425bd34f77d3fba00f43d000080bf5c68523f83ae3a3e40c0573c80b9d5bc9c1532be4d723fbf84fdcf3e026c06bf1679343e1650623feda7dd3e000080bffa62583f1231343ecbcc4c3dcbcc4cbecbcc4cbda39758bd7e487fbfa297583deb207f3f609765bd179c77bd000080bf0fb87d3f57cd063dcfcc4c3db9f545be9811cdbcda4138bd692e5ebf0a4afd3e486b7b3f752c04bed36e0cbe000080bf41087c3f5138173c80b9d53cc9503fbe78b9d5bc5325d5be54ee4ebf5525d53e3c0b5b3f86ce00bf2d77f8bd000080bfccb0763fe2ef3a3ca011cd3cb9f545becbcc4cbd084afdbe692e5ebff341383d81835d3f7f51febed3278abd000080bfae22783f59b20b3d9811cd3cb9f545be989919be084afdbe692e5ebfdb4138bd194b5e3f68a7fbbe6e0e88bd000080bfba2f7a3f287f063ecbcc4c3dcbcc4cbe989919bea39758bd7e487fbf9e9758bdd47d7f3f7cb950bda6b417bd000080bf1bc57f3fe845053e78b9d53cc9503fbe9c1532be5825d5be57ee4ebf4925d5bed18e643f6b6ce6be9e4b9bbc000080bfecb8793f72df1e3ecbcc4c3db9f545be992a33beed4138bd692e5ebf064afdbed6c97e3ff72fa7bd95eb573d000080bf7a1b7f3fa7be1e3e40e2da3b992a33be989919be9c8053bf89f80fbf94b20abd491e103f365852bfaf9db6bd000080bfd6b7733f4ca0083e40c0573c9d1532be78b9d5bc023142bf0fa003bf9bf1cc3e85e9063fdc6a58bff78fb2bd000080bf0023723f9fec523c80b9d53c9c1532be20c057bc682bcfbe499105bfe443403ff67b2f3f4d7637bfeba103be000080bf4427743f0000000060e2da3b992a33becbcc4cbd9c8053bf8af80fbfc5b20a3d91b30e3f921d53bfb95fc4bd000080bfcaaa713fec36143d6d562f3b0ad723becbcc4cbd432d77bfc28584beb129e03c26b0823e065376bf5b66c2bd000080bff7536e3fd7151a3d38e7193c0ad723be54b0d0bc189650bf87347abea197063fab38703edfde77bfc400b1bd000080bfe4026f3f2cfa5e3c5d562f3b0ad723be999919be3a3f77bf6e4c84bef7f4acbcc2b8843e540d76bfe16bc2bd000080bf0361703f08180a3e20c0573c9c1532be9d1532be509042bf3566ebbedb2eebbe1b5a0f3ffa6d52bf8781d4bd000080bf222b753f405f203e78b9d53c9d1532bec9503fbe5125d5be5525d5be57ee4ebf06ba413fedc526bf7d1a5ebd000080bf14b7773fc2eb2c3e5572893b0ad723becd171fbe71666ebf0cfa84be78da82be21f4943ea0c873bff918bdbd000080bfdac1703fdf650f3e40e2da3b989919be992a33be205f53bf673708bd0c2c10bffac5fc3d03177cbfc680fbbd000080bfefd66f3f67c5233e05678b3bb9e522be073320be75c073bfd60153bed11c67beeb5d6d3e0add77bfe360c0bd000080bfc7a0703f788e103e65e8893bda6c21bedb6c21be783571bfaf2171bedcf973be43f7863ee4c775bf8aa3bfbd000080bf4864703f97e1113e5062843bc9881ebe0ad723be7a896ebf721a87beab467fbe5ed7963e736f73bf6cd1c1bd000080bff3e96f3fe47d143e54562f3b989919be0ad723be234c77bf65a4c9bb575384be176c253d71b47dbf956902be000080bf54d36e3f54f7143e77562f3bcecc4cbd0ad723befd3c77bffd21ba3c3c4b84beb3fe363b9cc47ebf6699c8bd000080bf773d5d3faf1d1e3e60e2da3bcfcc4cbd992a33be9c8053bfd2b20a3d8af80fbf6c67ba3cb9d07ebfa533bfbd000080bf12415e3fc2eb2c3e - m_CompressedMesh: - m_Vertices: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_UV: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Normals: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Tangents: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Weights: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_NormalSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_TangentSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_FloatColors: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_BoneIndices: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_Triangles: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_UVInfo: 0 - m_LocalAABB: - m_Center: {x: 0, y: 0, z: -0.09999999} - m_Extent: {x: 0.19999997, y: 0.19999997, z: 0.09999999} - m_MeshUsageFlags: 0 - m_BakedConvexCollisionMesh: - m_BakedTriangleCollisionMesh: - m_MeshMetrics[0]: 1.6879306 - m_MeshMetrics[1]: 1 - m_MeshOptimizationFlags: 1 - m_StreamData: - serializedVersion: 2 - offset: 0 - size: 0 - path: ---- !u!1 &874857668 + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectCanceled: + m_PersistentCalls: + m_Calls: [] + m_OnActivate: + m_PersistentCalls: + m_Calls: [] + m_OnDeactivate: + m_PersistentCalls: + m_Calls: [] + m_TeleportationProvider: {fileID: 0} + m_MatchOrientation: 0 + m_MatchDirectionalInput: 0 + m_TeleportTrigger: 3 + m_FilterSelectionByHitNormal: 0 + m_UpNormalToleranceDegrees: 30 + m_Teleporting: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &587381658 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -6659,212 +5405,348 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 874857669} + - component: {fileID: 587381659} + - component: {fileID: 587381667} + - component: {fileID: 587381666} + - component: {fileID: 587381668} + - component: {fileID: 587381664} + - component: {fileID: 587381663} + - component: {fileID: 587381662} + - component: {fileID: 587381661} + - component: {fileID: 587381660} + - component: {fileID: 587381665} m_Layer: 0 - m_Name: Ring_0_Left + m_Name: Sliced Cube (1) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &874857669 + m_IsActive: 0 +--- !u!4 &587381659 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 874857668} - m_LocalRotation: {x: 0.0037497291, y: 0.028980805, z: -0.08957866, w: 0.995551} - m_LocalPosition: {x: -0.060953286, y: -0.00000024797393, z: 0.00000015258789} + m_GameObject: {fileID: 587381658} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} + m_LocalPosition: {x: -0.01, y: 1.2, z: 0.75} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1860767444} - m_Father: {fileID: 136761118} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &883197911 -GameObject: + m_Children: [] + m_Father: {fileID: 1756511964} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!114 &587381660 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 883197912} - m_Layer: 0 - m_Name: Middle_2_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &883197912 -Transform: + m_GameObject: {fileID: 587381658} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 10f84f2b8a43cb84abcf29d7e444d45d, type: 3} + m_Name: + m_EditorClassIdentifier: + lockOnParentObjectLock: 1 + attachedToSnapZone: + m_PersistentCalls: + m_Calls: [] + detachedFromSnapZone: + m_PersistentCalls: + m_Calls: [] + lockObjectOnSnap: 0 +--- !u!114 &587381661 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 883197911} - m_LocalRotation: {x: 0.007229151, y: 0.004674483, z: -0.10485168, w: 0.9944506} - m_LocalPosition: {x: -0.02966484, y: -0.00000024318695, z: 0.000000114440915} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 114376059} - m_Father: {fileID: 1854514984} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &890304051 -GameObject: + m_GameObject: {fileID: 587381658} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 428efa2c1665b6745bfa9c1ec2026c93, type: 3} + m_Name: + m_EditorClassIdentifier: + lockOnParentObjectLock: 1 + grabStarted: + m_PersistentCalls: + m_Calls: [] + grabEnded: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &587381662 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 890304052} - m_Layer: 0 - m_Name: Middle_Tip_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &890304052 -Transform: + m_GameObject: {fileID: 587381658} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 573907d717ac4934eb429f2f5978a132, type: 3} + m_Name: + m_EditorClassIdentifier: + lockOnParentObjectLock: 1 + touchStarted: + m_PersistentCalls: + m_Calls: [] + touchEnded: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &587381663 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 587381658} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d1bcb89c5e4474247b7923fe1388ad1a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 1 + m_DistanceCalculationMode: 1 + m_SelectMode: 0 + m_FocusMode: 1 + m_CustomReticle: {fileID: 0} + m_AllowGazeInteraction: 0 + m_AllowGazeSelect: 0 + m_OverrideGazeTimeToSelect: 0 + m_GazeTimeToSelect: 0.5 + m_OverrideTimeToAutoDeselectGaze: 0 + m_TimeToAutoDeselectGaze: 3 + m_AllowGazeAssistance: 0 + m_FirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_LastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_FirstSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_LastSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_FirstFocusEntered: + m_PersistentCalls: + m_Calls: [] + m_LastFocusExited: + m_PersistentCalls: + m_Calls: [] + m_FocusEntered: + m_PersistentCalls: + m_Calls: [] + m_FocusExited: + m_PersistentCalls: + m_Calls: [] + m_Activated: + m_PersistentCalls: + m_Calls: [] + m_Deactivated: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_StartingInteractionStrengthFilters: [] + m_OnFirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnLastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectCanceled: + m_PersistentCalls: + m_Calls: [] + m_OnActivate: + m_PersistentCalls: + m_Calls: [] + m_OnDeactivate: + m_PersistentCalls: + m_Calls: [] + m_AttachTransform: {fileID: 0} + m_SecondaryAttachTransform: {fileID: 0} + m_UseDynamicAttach: 0 + m_MatchAttachPosition: 1 + m_MatchAttachRotation: 1 + m_SnapToColliderVolume: 1 + m_ReinitializeDynamicAttachEverySingleGrab: 1 + m_AttachEaseInTime: 0.15 + m_MovementType: 1 + m_VelocityDamping: 1 + m_VelocityScale: 1 + m_AngularVelocityDamping: 1 + m_AngularVelocityScale: 1 + m_TrackPosition: 1 + m_SmoothPosition: 0 + m_SmoothPositionAmount: 5 + m_TightenPosition: 0.5 + m_TrackRotation: 1 + m_SmoothRotation: 0 + m_SmoothRotationAmount: 5 + m_TightenRotation: 0.5 + m_TrackScale: 1 + m_SmoothScale: 0 + m_SmoothScaleAmount: 8 + m_TightenScale: 0.1 + m_ThrowOnDetach: 1 + m_ThrowSmoothingDuration: 0.25 + m_ThrowSmoothingCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ThrowVelocityScale: 1.5 + m_ThrowAngularVelocityScale: 1 + m_ForceGravityOnDetach: 0 + m_RetainTransformParent: 1 + m_AttachPointCompatibilityMode: 0 + m_StartingSingleGrabTransformers: [] + m_StartingMultipleGrabTransformers: [] + m_AddDefaultGrabTransformers: 1 + isTouchable: 1 + isGrabbable: 1 + isUsable: 0 +--- !u!54 &587381664 +Rigidbody: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 890304051} - m_LocalRotation: {x: -0.00000002980233, y: -0.00000005308539, z: -0.000000042258765, w: 1} - m_LocalPosition: {x: -0.022676239, y: 0.00000029563904, z: -0.000000077486035} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1844665381} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &895449169 -GameObject: + m_GameObject: {fileID: 587381658} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &587381665 +BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 895449170} - - component: {fileID: 895449172} - - component: {fileID: 895449171} - m_Layer: 0 - m_Name: EventSystem - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &895449170 -Transform: + m_GameObject: {fileID: 587381658} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.40000013, y: 0.39999995, z: 0.20000006} + m_Center: {x: 0.00000047683716, y: 0, z: -0.10000003} +--- !u!23 &587381666 +MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 895449169} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1314738492} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &895449171 -MonoBehaviour: + m_GameObject: {fileID: 587381658} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1862d8e21d2bba649b255c6a7eb4eb61, type: 2} + - {fileID: 2100000, guid: a2e88723e4cd77a4690d0637321940aa, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &587381667 +MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 895449169} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ab68ce6587aab0146b8dabefbd806791, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_ClickSpeed: 0.3 - m_MoveDeadzone: 0.6 - m_RepeatDelay: 0.5 - m_RepeatRate: 0.1 - m_TrackedDeviceDragThresholdMultiplier: 2 - m_TrackedScrollDeltaMultiplier: 5 - m_ActiveInputMode: 0 - m_MaxTrackedDeviceRaycastDistance: 1000 - m_EnableXRInput: 1 - m_EnableMouseInput: 1 - m_EnableTouchInput: 1 - m_PointAction: {fileID: 0} - m_LeftClickAction: {fileID: 0} - m_MiddleClickAction: {fileID: 0} - m_RightClickAction: {fileID: 0} - m_ScrollWheelAction: {fileID: 0} - m_NavigateAction: {fileID: 0} - m_SubmitAction: {fileID: 0} - m_CancelAction: {fileID: 0} - m_EnableBuiltinActionsAsFallback: 1 - m_EnableGamepadInput: 1 - m_EnableJoystickInput: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel ---- !u!114 &895449172 + m_GameObject: {fileID: 587381658} + m_Mesh: {fileID: 8989072162018436745, guid: 3cd7c532cc585b54795fadfe1b32fc53, type: 3} +--- !u!114 &587381668 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 895449169} + m_GameObject: {fileID: 587381658} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: - m_FirstSelected: {fileID: 0} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!1 &952131644 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 952131645} - m_Layer: 0 - m_Name: AttachTransform - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &952131645 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 952131644} - m_LocalRotation: {x: 0.56707305, y: -0.556724, z: -0.42857817, w: 0.42989233} - m_LocalPosition: {x: -0.09850973, y: 0.018401135, z: -0.006201879} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1943140085} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0.594, y: -105.251, z: -90.602} ---- !u!1 &953319087 + serializedGuid: + serializedGuid: 4bd5dfda1461c546b1ceff6d13ef92cb + uniqueName: Sliced Cube (1) + tags: [] +--- !u!1 &595536806 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -6872,66 +5754,31 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 953319088} + - component: {fileID: 595536807} m_Layer: 0 - m_Name: Ring_Tip_Left + m_Name: Thumb_0_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &953319088 +--- !u!4 &595536807 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 953319087} - m_LocalRotation: {x: 0.000000011175867, y: -0.000000022351747, z: -0.00000020395967, w: 1} - m_LocalPosition: {x: -0.020554436, y: 0.000000114440915, z: -0.00000007867813} + m_GameObject: {fileID: 595536806} + m_LocalRotation: {x: -0.017132446, y: 0.023738552, z: -0.011670226, w: 0.9995033} + m_LocalPosition: {x: -0.027674861, y: -0.00000018596648, z: 0.00000015173107} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 161349714} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &961598097 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 961598098} - m_Layer: 0 - m_Name: BigHandLeft - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &961598098 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 961598097} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: -1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1640516631} - - {fileID: 2055471706} - - {fileID: 2028302228} - - {fileID: 136761118} - - {fileID: 1508614847} - m_Father: {fileID: 1943140085} + - {fileID: 1494241464} + m_Father: {fileID: 391997631} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &989050509 +--- !u!1 &597715542 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -6939,362 +5786,321 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 989050510} - - component: {fileID: 989050519} - - component: {fileID: 989050518} - - component: {fileID: 989050517} - - component: {fileID: 989050516} - - component: {fileID: 989050515} - - component: {fileID: 989050514} - - component: {fileID: 989050513} - - component: {fileID: 989050512} - - component: {fileID: 989050511} + - component: {fileID: 597715543} + - component: {fileID: 597715544} + - component: {fileID: 597715548} + - component: {fileID: 597715547} + - component: {fileID: 597715546} + - component: {fileID: 597715545} m_Layer: 0 - m_Name: XR Rig + m_Name: Magic Cube_SnapZone m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &989050510 +--- !u!4 &597715543 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 989050509} + m_GameObject: {fileID: 597715542} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: 1.2, z: 0.75} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1389664210} - m_Father: {fileID: 1314738492} - m_RootOrder: 0 + - {fileID: 1106929324} + m_Father: {fileID: 1527860102} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &989050511 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 989050509} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 58a9a7b4435e36f4fbc7000edd687974, type: 3} - m_Name: - m_EditorClassIdentifier: - moveScheme: 0 - turnStyle: 0 - moveForwardSource: 0 - actionAssets: - - {fileID: -944628639613478452, guid: c348712bda248c246b8c49b3db54643f, type: 3} - actionMaps: [] - actions: [] - baseControlScheme: Generic XR Controller - noncontinuousControlScheme: Noncontinuous Move - continuousControlScheme: Continuous Move - continuousMoveProvider: {fileID: 989050514} - continuousTurnProvider: {fileID: 989050515} - snapTurnProvider: {fileID: 989050518} - headForwardSource: {fileID: 2013188264} - leftHandForwardSource: {fileID: 1809129953} - rightHandForwardSource: {fileID: 1390367067} ---- !u!114 &989050512 +--- !u!114 &597715544 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 989050509} + m_GameObject: {fileID: 597715542} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: af6bf904e410ee8479f9093d8830d1f8, type: 3} + m_Script: {fileID: 11500000, guid: dc6efdd45e6a00744aaf4c68264d6d7c, type: 3} m_Name: m_EditorClassIdentifier: - m_LocomotionProvider: {fileID: 989050518} - m_MinHeight: 0 - m_MaxHeight: Infinity ---- !u!143 &989050513 -CharacterController: + m_InteractionManager: {fileID: 0} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 1 + m_AttachTransform: {fileID: 1106929324} + m_KeepSelectedTargetValid: 1 + m_DisableVisualsWhenBlockedInGroup: 1 + m_StartingSelectedInteractable: {fileID: 0} + m_StartingTargetFilter: {fileID: 0} + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_ShowInteractableHoverMeshes: 1 + m_InteractableHoverMeshMaterial: {fileID: 0} + m_InteractableCantHoverMeshMaterial: {fileID: 0} + m_SocketActive: 1 + m_InteractableHoverScale: 1 + m_RecycleDelayTime: 1 + m_HoverSocketSnapping: 0 + m_SocketSnappingRadius: 0.1 + m_SocketScaleMode: 0 + m_FixedScale: {x: 1, y: 1, z: 1} + m_TargetBoundsSize: {x: 1, y: 1, z: 1} + shownHighlightObject: {fileID: 919132149155446097, guid: 60134579c9ddef44284c0dad35e2444d, type: 3} + ShowHighlightInEditor: 1 + highlightMeshMaterial: {fileID: 2100000, guid: 34211d2175b5963469d4deb504fbcbaf, type: 2} + validationMaterial: {fileID: 2100000, guid: c6c888b079480654fbf337e7fe50b405, type: 2} + invalidMaterial: {fileID: 2100000, guid: 69e2b61a70de44f48909a564a7cf9c62, type: 2} + previewMesh: {fileID: 524671518} +--- !u!65 &597715545 +BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 989050509} + m_GameObject: {fileID: 597715542} m_Material: {fileID: 0} - m_IsTrigger: 0 + m_IsTrigger: 1 m_Enabled: 1 serializedVersion: 2 - m_Height: 1.36144 - m_Radius: 0.1 - m_SlopeLimit: 45 - m_StepOffset: 0.3 - m_SkinWidth: 0.08 - m_MinMoveDistance: 0.001 + m_Size: {x: 0.4, y: 0.4, z: 0.4} m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &989050514 +--- !u!114 &597715546 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 989050509} + m_GameObject: {fileID: 597715542} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0bf296fc962d7184ab14ad1841598d5f, type: 3} + m_Script: {fileID: 11500000, guid: 557aaed036734781b129d67ec56c9366, type: 3} m_Name: m_EditorClassIdentifier: - m_System: {fileID: 989050517} - m_MoveSpeed: 1 - m_EnableStrafe: 1 - m_EnableFly: 0 - m_UseGravity: 1 - m_GravityApplicationMode: 0 - m_ForwardSource: {fileID: 2013188264} - m_LeftHandMoveAction: - m_UseReference: 1 - m_Action: - m_Name: Left Hand Move - m_Type: 0 - m_ExpectedControlType: - m_Id: 6da12c60-ad99-45b3-a0b1-a4ee1d30ddcc - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 6972639530819350904, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RightHandMoveAction: - m_UseReference: 1 - m_Action: - m_Name: Right Hand Move - m_Type: 0 - m_ExpectedControlType: - m_Id: 77f364a5-e031-452a-af50-144d41955e70 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -8198699208435500284, guid: c348712bda248c246b8c49b3db54643f, type: 3} ---- !u!114 &989050515 + acceptedProcessSceneObjects: + - {fileID: 248065658} +--- !u!114 &597715547 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 989050509} + m_GameObject: {fileID: 597715542} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 919e39492806b334982b6b84c90dd927, type: 3} + m_Script: {fileID: 11500000, guid: eb7be990fff0a2142a874601356b26df, type: 3} m_Name: m_EditorClassIdentifier: - m_System: {fileID: 989050517} - m_TurnSpeed: 60 - m_LeftHandTurnAction: - m_UseReference: 1 - m_Action: - m_Name: Left Hand Turn - m_Type: 0 - m_ExpectedControlType: - m_Id: d065cb11-e9f6-4747-a3d4-1c032fc345a0 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 1010738217276881514, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RightHandTurnAction: - m_UseReference: 1 - m_Action: - m_Name: Right Hand Turn - m_Type: 0 - m_ExpectedControlType: - m_Id: e043a43a-0352-4ee2-ab81-9dafdfb41dc2 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -6493913391331992944, guid: c348712bda248c246b8c49b3db54643f, type: 3} ---- !u!114 &989050516 + lockOnParentObjectLock: 1 + objectAttached: + m_PersistentCalls: + m_Calls: [] + objectDetached: + m_PersistentCalls: + m_Calls: [] + lockOnUnsnap: 1 +--- !u!114 &597715548 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 989050509} + m_GameObject: {fileID: 597715542} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 01f69dc1cb084aa42b2f2f8cd87bc770, type: 3} + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: - m_System: {fileID: 989050517} - m_DelayTime: 0 ---- !u!114 &989050517 -MonoBehaviour: + serializedGuid: + serializedGuid: 41ac9fab4fee234e819d2b79f916d92a + uniqueName: Magic Cube_SnapZone + tags: [] +--- !u!1 &626500154 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 989050509} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 03a5df2202a8b96488c744be3bd0c33e, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Timeout: 10 - m_XROrigin: {fileID: 989050519} ---- !u!114 &989050518 -MonoBehaviour: + serializedVersion: 6 + m_Component: + - component: {fileID: 626500155} + m_Layer: 0 + m_Name: Middle_2_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &626500155 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 989050509} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2213c36610e3b1c4bbf886810ed9db12, type: 3} - m_Name: - m_EditorClassIdentifier: - m_System: {fileID: 989050517} - m_TurnAmount: 45 - m_DebounceTime: 0.5 - m_EnableTurnLeftRight: 1 - m_EnableTurnAround: 1 - m_DelayTime: 0 - m_LeftHandSnapTurnAction: - m_UseReference: 1 - m_Action: - m_Name: Left Hand Snap Turn - m_Type: 0 - m_ExpectedControlType: - m_Id: bcae984e-e222-4aec-9899-6a2de88a7166 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 1010738217276881514, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RightHandSnapTurnAction: - m_UseReference: 1 - m_Action: - m_Name: Right Hand Snap Turn - m_Type: 0 - m_ExpectedControlType: - m_Id: ef35997d-2cb6-4340-9edd-1239db5332f0 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -6493913391331992944, guid: c348712bda248c246b8c49b3db54643f, type: 3} ---- !u!114 &989050519 -MonoBehaviour: + m_GameObject: {fileID: 626500154} + m_LocalRotation: {x: 0.007229151, y: 0.004674483, z: -0.10485168, w: 0.9944506} + m_LocalPosition: {x: -0.02966484, y: -0.00000024318695, z: 0.000000114440915} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1177651917} + m_Father: {fileID: 1078070624} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &628411315 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 989050509} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e0cb9aa70a22847b5925ee5f067c10a9, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Camera: {fileID: 2013188260} - m_OriginBaseGameObject: {fileID: 989050509} - m_CameraFloorOffsetObject: {fileID: 1389664209} - m_RequestedTrackingOriginMode: 0 - m_CameraYOffset: 1.36144 ---- !u!1001 &1006305323 + serializedVersion: 6 + m_Component: + - component: {fileID: 628411316} + m_Layer: 0 + m_Name: Index_Palm_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &628411316 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 628411315} + m_LocalRotation: {x: 0.9956038, y: -0.056100972, z: -0.070293866, w: -0.026165245} + m_LocalPosition: {x: -0.05402496, y: 0.0060563944, z: 0.02002304} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1338586625} + m_Father: {fileID: 1909973946} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &632093759 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - m_TransformParent: {fileID: 2121825122} + m_TransformParent: {fileID: 1527860102} m_Modifications: - - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} propertyPath: m_RootOrder - value: 0 + value: 4 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} propertyPath: m_LocalPosition.x - value: 0.5 + value: -0.75 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} propertyPath: m_LocalPosition.y - value: 1.95 + value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} propertyPath: m_LocalRotation.x - value: -0 + value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + - target: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: -7511558181221131132, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + - target: {fileID: -7511558181221131132, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} propertyPath: m_Materials.Array.data[0] value: - objectReference: {fileID: 2100000, guid: d586649e59c967444a1607a4aed46c01, type: 2} - - target: {fileID: 919132149155446097, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + objectReference: {fileID: 2100000, guid: 3b8d4fff00195aa4792d649902e68bcd, type: 2} + - target: {fileID: -7511558181221131132, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: 525bac3f393fa1349a1508822fb6abb0, type: 2} + - target: {fileID: 919132149155446097, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} propertyPath: m_Name - value: Shield + value: Pedestal + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} + propertyPath: m_StaticEditorFlags + value: 4294967295 objectReference: {fileID: 0} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} ---- !u!1 &1011798183 + m_SourcePrefab: {fileID: 100100000, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} +--- !u!4 &632093760 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} + m_PrefabInstance: {fileID: 632093759} + m_PrefabAsset: {fileID: 0} +--- !u!1 &632093761 stripped GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: e3168d03ba46dbe4eb56c62a2fcb9351, type: 3} + m_PrefabInstance: {fileID: 632093759} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1011798184} - m_Layer: 0 - m_Name: Index_1_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1011798184 -Transform: +--- !u!65 &632093762 +BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1011798183} - m_LocalRotation: {x: 0.0029770152, y: -0.0028722505, z: -0.046370056, w: 0.9989158} - m_LocalPosition: {x: -0.033406343, y: 0.00000032424927, z: -0.00000019073485} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 693789267} - m_Father: {fileID: 1502566884} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1038510652 + m_GameObject: {fileID: 632093761} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.5000001, y: 1, z: 0.5000001} + m_Center: {x: -0.00000023841858, y: 0.5, z: 0} +--- !u!1 &643048780 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -7302,63 +6108,45 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1038510653} + - component: {fileID: 643048781} + - component: {fileID: 643048782} m_Layer: 0 - m_Name: Thumb_0_Left + m_Name: Collider (6) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1038510653 +--- !u!4 &643048781 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1038510652} - m_LocalRotation: {x: -0.017132446, y: 0.023738552, z: -0.011670226, w: 0.9995033} - m_LocalPosition: {x: -0.027674861, y: -0.00000018596648, z: 0.00000015173107} + m_GameObject: {fileID: 643048780} + m_LocalRotation: {x: 0.27059805, y: 0.27059805, z: 0.6532815, w: 0.6532815} + m_LocalPosition: {x: -0.182, y: 0, z: -0.163} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1303642571} - m_Father: {fileID: 436658224} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1049921003 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1049921004} - m_Layer: 0 - m_Name: Ring_2_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1049921004 -Transform: + m_Children: [] + m_Father: {fileID: 660021081} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 45, z: 90} +--- !u!136 &643048782 +CapsuleCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1049921003} - m_LocalRotation: {x: -0.0013731687, y: -0.0005792431, z: -0.08538537, w: 0.9963469} - m_LocalPosition: {x: -0.028493328, y: -0.00000044822693, z: -0.0000003170967} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1757158344} - m_Father: {fileID: 1860767444} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1056356945 + m_GameObject: {fileID: 643048780} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.02 + m_Height: 0.2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &655638805 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -7366,51 +6154,52 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1056356946} - - component: {fileID: 1056356947} - m_Layer: 0 - m_Name: HandLeft + - component: {fileID: 655638806} + - component: {fileID: 655638808} + - component: {fileID: 655638807} + m_Layer: 8 + m_Name: Cylinder m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1056356946 +--- !u!4 &655638806 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1056356945} - 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_GameObject: {fileID: 655638805} + m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: -0.1} + m_LocalScale: {x: 1, y: 0.1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1202705125} - m_RootOrder: 1 + m_Father: {fileID: 375530500} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!137 &1056356947 -SkinnedMeshRenderer: +--- !u!23 &655638807 +MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1056356945} + m_GameObject: {fileID: 655638805} m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 m_DynamicOccludee: 1 m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 3 + m_RayTracingMode: 2 m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 2ab12257a86442740ba3dc5694817baa, type: 2} + - {fileID: 2100000, guid: a16db0f18ace882458e325d3243cb6da, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -7431,39 +6220,137 @@ SkinnedMeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &655638808 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 655638805} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &660021079 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1743725476} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7511558181221131132, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 3b8d4fff00195aa4792d649902e68bcd, type: 2} + - target: {fileID: -7511558181221131132, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: 525bac3f393fa1349a1508822fb6abb0, type: 2} + - target: {fileID: -4818106957885473086, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 3b8d4fff00195aa4792d649902e68bcd, type: 2} + - target: {fileID: 919132149155446097, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_Name + value: Target + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_StaticEditorFlags + value: 4294967295 + objectReference: {fileID: 0} + - target: {fileID: 2191750151954457832, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_StaticEditorFlags + value: 4294967295 + objectReference: {fileID: 0} + - target: {fileID: 2229032678205019293, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 3b8d4fff00195aa4792d649902e68bcd, type: 2} + - target: {fileID: 2229032678205019293, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: 16598d12187e7ef49aaf6d2ec4136e05, type: 2} + - target: {fileID: 2229032678205019293, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_Materials.Array.data[2] + value: + objectReference: {fileID: 2100000, guid: 525bac3f393fa1349a1508822fb6abb0, type: 2} + - target: {fileID: 3396913584297481876, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + propertyPath: m_StaticEditorFlags + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} +--- !u!4 &660021080 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + m_PrefabInstance: {fileID: 660021079} + m_PrefabAsset: {fileID: 0} +--- !u!4 &660021081 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 393777075064552474, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + m_PrefabInstance: {fileID: 660021079} + m_PrefabAsset: {fileID: 0} +--- !u!1 &660021082 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2191750151954457832, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + m_PrefabInstance: {fileID: 660021079} + m_PrefabAsset: {fileID: 0} +--- !u!65 &660021083 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 660021082} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 serializedVersion: 2 - m_Quality: 0 - m_UpdateWhenOffscreen: 0 - m_SkinnedMotionVectors: 1 - m_Mesh: {fileID: -1400252653696632910, guid: 3cc1bfa741063664e8b13a63afcd062f, type: 3} - m_Bones: - - {fileID: 227128476} - - {fileID: 1182756916} - - {fileID: 1844665381} - - {fileID: 161349714} - - {fileID: 1216485171} - - {fileID: 1633289441} - - {fileID: 1633826910} - - {fileID: 1431980070} - - {fileID: 139777993} - - {fileID: 1656508554} - - {fileID: 1518198310} - - {fileID: 163224875} - - {fileID: 487514512} - - {fileID: 1884881952} - - {fileID: 1856484991} - - {fileID: 1612617676} - - {fileID: 1303642571} - - {fileID: 1038510653} - - {fileID: 436658224} - - {fileID: 2053954419} - m_BlendShapeWeights: [] - m_RootBone: {fileID: 2053954419} - m_AABB: - m_Center: {x: -0.10444905, y: -0.0046319105, z: 0.015674934} - m_Extent: {x: 0.10534169, y: 0.05054314, z: 0.081589594} - m_DirtyAABB: 0 ---- !u!1 &1058700325 + m_Size: {x: 1.7976047, y: 1.1504669, z: 0.08324993} + m_Center: {x: 0, y: 3.5952096, z: 0.01631552} +--- !u!1 &668594701 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -7471,30 +6358,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1058700326} + - component: {fileID: 668594702} m_Layer: 0 - m_Name: Index_Tip_Left + m_Name: Thumb_Tip_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1058700326 +--- !u!4 &668594702 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1058700325} - m_LocalRotation: {x: 0.000000029802326, y: 9.492409e-15, z: 0.00000031851238, w: 1} - m_LocalPosition: {x: -0.02301526, y: 0.000000085830685, z: -0.000000114440915} + m_GameObject: {fileID: 668594701} + m_LocalRotation: {x: 0.0000000018626451, y: 0.000000005587936, z: -0.000000014901163, w: 1} + m_LocalPosition: {x: -0.029552078, y: 0.0000000667572, z: -0.00000015109777} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 227128476} + m_Father: {fileID: 1494241464} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1106929323 +--- !u!1 &676405891 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -7502,96 +6389,62 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1106929324} - - component: {fileID: 1106929327} - - component: {fileID: 1106929326} - - component: {fileID: 1106929325} + - component: {fileID: 676405892} m_Layer: 0 - m_Name: SnapPoint + m_Name: AttachTransform m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1106929324 +--- !u!4 &676405892 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1106929323} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_GameObject: {fileID: 676405891} + m_LocalRotation: {x: 0.36650118, y: 0, z: 0, w: 0.9304176} + m_LocalPosition: {x: 0.0447, y: -0.0476, z: 0.0131} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 597715543} + m_Father: {fileID: 1336895285} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1106929325 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1106929323} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 738067764} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1106929326 -MeshFilter: + m_LocalEulerAnglesHint: {x: 43, y: 0, z: 0} +--- !u!1 &679583487 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1106929323} - m_Mesh: {fileID: 524671518} ---- !u!114 &1106929327 -MonoBehaviour: + serializedVersion: 6 + m_Component: + - component: {fileID: 679583488} + m_Layer: 0 + m_Name: Little_1_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &679583488 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1106929323} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 88ea78c93b844cc1b7f98cca70e8679c, type: 3} - m_Name: - m_EditorClassIdentifier: - parent: {fileID: 597715544} ---- !u!1 &1182756915 + m_GameObject: {fileID: 679583487} + m_LocalRotation: {x: 0.0012706812, y: -0.0023152584, z: -0.06524572, w: 0.99786574} + m_LocalPosition: {x: -0.033131722, y: 0.00000038266182, z: -0.00000061273573} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1418001335} + m_Father: {fileID: 1466462400} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &695049118 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -7599,31 +6452,31 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1182756916} + - component: {fileID: 695049119} m_Layer: 0 - m_Name: Index_1_Left + m_Name: Ring_0_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1182756916 +--- !u!4 &695049119 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1182756915} - m_LocalRotation: {x: 0.0029770152, y: -0.0028722505, z: -0.046370056, w: 0.9989158} - m_LocalPosition: {x: -0.033406343, y: 0.00000032424927, z: -0.00000019073485} + m_GameObject: {fileID: 695049118} + m_LocalRotation: {x: 0.0037497291, y: 0.028980805, z: -0.08957866, w: 0.995551} + m_LocalPosition: {x: -0.060953286, y: -0.00000024797393, z: 0.00000015258789} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 227128476} - m_Father: {fileID: 163224875} + - {fileID: 2146657147} + m_Father: {fileID: 388840135} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1184571258 +--- !u!1 &697578260 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -7631,30 +6484,104 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1184571259} + - component: {fileID: 697578261} + - component: {fileID: 697578262} m_Layer: 0 - m_Name: Thumb_Tip_Left + m_Name: RightHand m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1184571259 +--- !u!4 &697578261 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1184571258} - m_LocalRotation: {x: 0.0000000018626451, y: 0.000000005587936, z: -0.000000014901163, w: 1} - m_LocalPosition: {x: -0.029552078, y: 0.0000000667572, z: -0.00000015109777} + m_GameObject: {fileID: 697578260} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1303642571} - m_RootOrder: 0 + m_Children: + - {fileID: 1729154661} + - {fileID: 496138948} + - {fileID: 1336895285} + m_Father: {fileID: 65634329} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1192304053 +--- !u!114 &697578262 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 697578260} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 41cc12ba1114e4f46929730a9389cb74, type: 3} + m_Name: + m_EditorClassIdentifier: + baseController: {fileID: 1729154660} + teleportController: {fileID: 496138946} + uiController: {fileID: 1336895284} + teleportModeActivate: {fileID: -8061240218431744966, guid: de2411ef647d9f24d981120efb63e621, type: 3} + teleportModeCancel: {fileID: 2307464322626738743, guid: de2411ef647d9f24d981120efb63e621, type: 3} + uiModeActivate: {fileID: -4794670585942407507, guid: de2411ef647d9f24d981120efb63e621, type: 3} + turn: {fileID: -6493913391331992944, guid: de2411ef647d9f24d981120efb63e621, type: 3} + move: {fileID: -8198699208435500284, guid: de2411ef647d9f24d981120efb63e621, type: 3} + translateAnchor: {fileID: 875253871413052681, guid: de2411ef647d9f24d981120efb63e621, type: 3} + rotateAnchor: {fileID: -5913262927076077117, guid: de2411ef647d9f24d981120efb63e621, type: 3} + selectState: + enabled: 0 + m_ID: 1 + onEnter: + m_PersistentCalls: + m_Calls: [] + onUpdate: + m_PersistentCalls: + m_Calls: [] + onExit: + m_PersistentCalls: + m_Calls: [] + teleportState: + enabled: 0 + m_ID: 2 + onEnter: + m_PersistentCalls: + m_Calls: [] + onUpdate: + m_PersistentCalls: + m_Calls: [] + onExit: + m_PersistentCalls: + m_Calls: [] + interactState: + enabled: 0 + m_ID: 3 + onEnter: + m_PersistentCalls: + m_Calls: [] + onUpdate: + m_PersistentCalls: + m_Calls: [] + onExit: + m_PersistentCalls: + m_Calls: [] + uiState: + enabled: 0 + m_ID: 4 + onEnter: + m_PersistentCalls: + m_Calls: [] + onUpdate: + m_PersistentCalls: + m_Calls: [] + onExit: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &705507993 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -7662,185 +6589,173 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1192304054} + - component: {fileID: 705507995} + - component: {fileID: 705507994} m_Layer: 0 - m_Name: Transformation Machine + m_Name: Sun m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1192304054 +--- !u!108 &705507994 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705507993} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 0.85882354, g: 0.858539, b: 0.84705883, a: 1} + m_Intensity: 0.8 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &705507995 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1192304053} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 1} + m_GameObject: {fileID: 705507993} + m_LocalRotation: {x: 0.8864501, y: 0.40046445, z: 0.13547534, w: 0.18836364} + m_LocalPosition: {x: 0, y: 5, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1471223338} - - {fileID: 1583804101} - - {fileID: 2011926244} - - {fileID: 535679137} - m_Father: {fileID: 1527860102} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1202705124 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1202705125} - - component: {fileID: 1202705127} - - component: {fileID: 1202705126} - m_Layer: 0 - m_Name: LeftHand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1202705125 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1202705124} - m_LocalRotation: {x: -0.27542365, y: 0.27542365, z: 0.65126175, w: 0.65126175} - m_LocalPosition: {x: -0.0358, y: 0.0577, z: -0.1296} - m_LocalScale: {x: 0.95, y: 0.95, z: 0.95} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2053954419} - - {fileID: 1056356946} - - {fileID: 1797391503} - m_Father: {fileID: 733504865} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: -45.848, y: 0, z: 90} ---- !u!114 &1202705126 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1202705124} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e241df096dff11c478f43d1b202d33af, type: 3} - m_Name: - m_EditorClassIdentifier: - selectFloat: Select - activateFloat: Activate - UIStateBool: UIEnabled - teleportStateBool: TeleportEnabled - baseController: {fileID: 0} - teleportController: {fileID: 0} - uiController: {fileID: 0} - controllerManager: {fileID: 0} ---- !u!95 &1202705127 -Animator: - serializedVersion: 5 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 13.029, y: 156.335, z: 128.636} +--- !u!21 &738067764 +Material: + serializedVersion: 8 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1202705124} - m_Enabled: 1 - m_Avatar: {fileID: 9000000, guid: 3cc1bfa741063664e8b13a63afcd062f, type: 3} - m_Controller: {fileID: 9100000, guid: 6f17d5d554bc9b742b9bf585b813330c, type: 2} - m_CullingMode: 0 - m_UpdateMode: 0 - m_ApplyRootMotion: 0 - m_LinearVelocityBlending: 0 - m_StabilizeFeet: 0 - m_WarningMessage: - m_HasTransformHierarchy: 1 - m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorStateOnDisable: 0 - m_WriteDefaultValuesOnDisable: 0 ---- !u!1001 &1204090590 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1756511964} - m_Modifications: - - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} - propertyPath: m_RootOrder - value: 6 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} - propertyPath: m_LocalPosition.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} - propertyPath: m_LocalPosition.z - value: 0.75 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -7511558181221131132, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 3b8d4fff00195aa4792d649902e68bcd, type: 2} - - target: {fileID: -7511558181221131132, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} - propertyPath: m_Materials.Array.data[1] - value: - objectReference: {fileID: 2100000, guid: 525bac3f393fa1349a1508822fb6abb0, type: 2} - - target: {fileID: 919132149155446097, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} - propertyPath: m_Name - value: Table - objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} - propertyPath: m_StaticEditorFlags - value: 4294967295 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} ---- !u!4 &1204090591 stripped -Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} - m_PrefabInstance: {fileID: 1204090590} - m_PrefabAsset: {fileID: 0} ---- !u!1 &1216485170 + m_Name: Standard + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ValidKeywords: + - _ALPHAPREMULTIPLY_ON + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + 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_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 3 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 0 + m_Colors: + - _Color: {r: 0.4, g: 0.5882353, b: 1, a: 0.19607843} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] +--- !u!1 &740016309 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -7848,31 +6763,31 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1216485171} + - component: {fileID: 740016310} m_Layer: 0 - m_Name: Little_2_Left + m_Name: Index_1_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1216485171 +--- !u!4 &740016310 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1216485170} - m_LocalRotation: {x: 0.007898328, y: 0.0033098771, z: -0.14792106, w: 0.9889621} - m_LocalPosition: {x: -0.021837996, y: 0.000000052452087, z: 0.0000003004074} + m_GameObject: {fileID: 740016309} + m_LocalRotation: {x: 0.0029770152, y: -0.0028722505, z: -0.046370056, w: 0.9989158} + m_LocalPosition: {x: -0.033406343, y: 0.00000032424927, z: -0.00000019073485} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1327392149} - m_Father: {fileID: 1633289441} + - {fileID: 2109031085} + m_Father: {fileID: 1338586625} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1216574280 +--- !u!1 &757363299 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -7880,45 +6795,82 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1216574281} - - component: {fileID: 1216574282} - m_Layer: 0 - m_Name: LightSabre Origin + - component: {fileID: 757363300} + - component: {fileID: 757363302} + - component: {fileID: 757363301} + m_Layer: 8 + m_Name: Cylinder m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1216574281 +--- !u!4 &757363300 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1216574280} + m_GameObject: {fileID: 757363299} m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071068} - m_LocalPosition: {x: 0.4000002, y: 1.18, z: 0.6000003} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.1} + m_LocalScale: {x: 1, y: 0.1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1756511964} - m_RootOrder: 2 + m_Father: {fileID: 1731060433} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1216574282 -MonoBehaviour: +--- !u!23 &757363301 +MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1216574280} + m_GameObject: {fileID: 757363299} m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: LightSabre Origin - tags: [] ---- !u!1 &1222594155 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a16db0f18ace882458e325d3243cb6da, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &757363302 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 757363299} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &790520235 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -7926,42 +6878,42 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1222594156} - - component: {fileID: 1222594158} - - component: {fileID: 1222594157} - m_Layer: 8 - m_Name: Plane + - component: {fileID: 790520236} + - component: {fileID: 790520239} + - component: {fileID: 790520238} + - component: {fileID: 790520237} + m_Layer: 0 + m_Name: SnapPoint m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1222594156 +--- !u!4 &790520236 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1222594155} - m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_GameObject: {fileID: 790520235} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 134998304} - m_Father: {fileID: 1521703297} + m_Children: [] + m_Father: {fileID: 1525491574} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} ---- !u!23 &1222594157 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &790520237 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1222594155} + m_GameObject: {fileID: 790520235} m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 + m_CastShadows: 1 + m_ReceiveShadows: 1 m_DynamicOccludee: 1 m_StaticShadowCaster: 0 m_MotionVectors: 1 @@ -7972,7 +6924,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 5984489a6c8753743953c8d64d3265fb, type: 2} + - {fileID: 539108941} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -7994,15 +6946,28 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1222594158 +--- !u!33 &790520238 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1222594155} - m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1241623309 + m_GameObject: {fileID: 790520235} + m_Mesh: {fileID: 862649805} +--- !u!114 &790520239 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 790520235} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88ea78c93b844cc1b7f98cca70e8679c, type: 3} + m_Name: + m_EditorClassIdentifier: + parent: {fileID: 1525491575} +--- !u!1 &795450757 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8010,85 +6975,143 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1241623310} - - component: {fileID: 1241623318} - - component: {fileID: 1241623317} - - component: {fileID: 1241623316} - - component: {fileID: 1241623315} - - component: {fileID: 1241623314} - - component: {fileID: 1241623313} - - component: {fileID: 1241623312} - - component: {fileID: 1241623311} + - component: {fileID: 795450758} m_Layer: 0 - m_Name: Ball + m_Name: Little_2_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1241623310 +--- !u!4 &795450758 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1241623309} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.5, y: 2.125, z: 0} + m_GameObject: {fileID: 795450757} + m_LocalRotation: {x: 0.007898328, y: 0.0033098771, z: -0.14792106, w: 0.9889621} + m_LocalPosition: {x: -0.021837996, y: 0.000000052452087, z: 0.0000003004074} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 813701130} - m_RootOrder: 1 + m_Children: + - {fileID: 858105913} + m_Father: {fileID: 1307398688} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1241623311 +--- !u!1 &813701129 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 813701130} + m_Layer: 0 + m_Name: Station Unlock Chest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &813701130 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 813701129} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} + m_LocalPosition: {x: 1.5, y: 0, z: -2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2014095924} + - {fileID: 1241623310} + - {fileID: 2121825122} + - {fileID: 586564670} + m_Father: {fileID: 0} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!1 &815556418 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 815556419} + - component: {fileID: 815556422} + - component: {fileID: 815556423} + - component: {fileID: 815556421} + - component: {fileID: 815556420} + m_Layer: 8 + m_Name: Teleportation Spot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &815556419 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 815556418} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1521703297} + m_Father: {fileID: 1527860102} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &815556420 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1241623309} + m_GameObject: {fileID: 815556418} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 428efa2c1665b6745bfa9c1ec2026c93, type: 3} + m_Script: {fileID: 11500000, guid: 584ad12357614f4fbb5460fdf72e8cc6, type: 3} m_Name: m_EditorClassIdentifier: lockOnParentObjectLock: 1 - grabStarted: + teleportEnded: m_PersistentCalls: m_Calls: [] - grabEnded: + initialized: m_PersistentCalls: m_Calls: [] ---- !u!114 &1241623312 -MonoBehaviour: +--- !u!65 &815556421 +BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1241623309} + m_GameObject: {fileID: 815556418} + m_Material: {fileID: 0} + m_IsTrigger: 0 m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 573907d717ac4934eb429f2f5978a132, type: 3} - m_Name: - m_EditorClassIdentifier: - lockOnParentObjectLock: 1 - touchStarted: - m_PersistentCalls: - m_Calls: [] - touchEnded: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &1241623313 + serializedVersion: 2 + m_Size: {x: 1, y: 0.01, z: 1} + m_Center: {x: 0, y: 0.02, z: 0} +--- !u!114 &815556422 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1241623309} + m_GameObject: {fileID: 815556418} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d1bcb89c5e4474247b7923fe1388ad1a, type: 3} + m_Script: {fileID: 11500000, guid: 0193c710a3042c6479b28370a44e0b0f, type: 3} m_Name: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} @@ -8097,11 +7120,11 @@ MonoBehaviour: serializedVersion: 2 m_Bits: 4294967295 m_InteractionLayers: - m_Bits: 1 + m_Bits: 2 m_DistanceCalculationMode: 1 - m_SelectMode: 0 + m_SelectMode: 1 m_FocusMode: 1 - m_CustomReticle: {fileID: 0} + m_CustomReticle: {fileID: 3819676577015031517, guid: c9ea54082e6151843acb776fb52ed6f7, type: 3} m_AllowGazeInteraction: 0 m_AllowGazeSelect: 0 m_OverrideGazeTimeToSelect: 0 @@ -8181,154 +7204,186 @@ MonoBehaviour: m_OnDeactivate: m_PersistentCalls: m_Calls: [] - m_AttachTransform: {fileID: 0} - m_SecondaryAttachTransform: {fileID: 0} - m_UseDynamicAttach: 0 - m_MatchAttachPosition: 1 - m_MatchAttachRotation: 1 - m_SnapToColliderVolume: 1 - m_ReinitializeDynamicAttachEverySingleGrab: 1 - m_AttachEaseInTime: 0.15 - m_MovementType: 1 - m_VelocityDamping: 1 - m_VelocityScale: 1 - m_AngularVelocityDamping: 1 - m_AngularVelocityScale: 1 - m_TrackPosition: 1 - m_SmoothPosition: 0 - m_SmoothPositionAmount: 5 - m_TightenPosition: 0.5 - m_TrackRotation: 1 - m_SmoothRotation: 0 - m_SmoothRotationAmount: 5 - m_TightenRotation: 0.5 - m_TrackScale: 1 - m_SmoothScale: 0 - m_SmoothScaleAmount: 8 - m_TightenScale: 0.1 - m_ThrowOnDetach: 1 - m_ThrowSmoothingDuration: 0.25 - m_ThrowSmoothingCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - m_ThrowVelocityScale: 1.5 - m_ThrowAngularVelocityScale: 1 - m_ForceGravityOnDetach: 0 - m_RetainTransformParent: 1 - m_AttachPointCompatibilityMode: 0 - m_StartingSingleGrabTransformers: [] - m_StartingMultipleGrabTransformers: [] - m_AddDefaultGrabTransformers: 1 - isTouchable: 1 - isGrabbable: 1 - isUsable: 0 ---- !u!114 &1241623314 + m_TeleportationProvider: {fileID: 0} + m_MatchOrientation: 2 + m_MatchDirectionalInput: 0 + m_TeleportTrigger: 3 + m_FilterSelectionByHitNormal: 0 + m_UpNormalToleranceDegrees: 30 + m_Teleporting: + m_PersistentCalls: + m_Calls: [] + m_TeleportAnchorTransform: {fileID: 1521703297} +--- !u!114 &815556423 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1241623309} + m_GameObject: {fileID: 815556418} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: - uniqueName: Ball + serializedGuid: + serializedGuid: 8a8ba7249720634e83596d2c8de50700 + uniqueName: Teleportation Spot tags: [] ---- !u!54 &1241623315 -Rigidbody: +--- !u!1 &820468470 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1241623309} - serializedVersion: 2 - m_Mass: 0.01 - m_Drag: 0 - m_AngularDrag: 0.05 - m_UseGravity: 1 - m_IsKinematic: 0 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 ---- !u!135 &1241623316 -SphereCollider: + serializedVersion: 6 + m_Component: + - component: {fileID: 820468471} + m_Layer: 0 + m_Name: ModelPt + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &820468471 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1241623309} - m_Material: {fileID: 13400000, guid: fb001adfa2edbb64887889d74d6fe41e, type: 2} - m_IsTrigger: 0 + m_GameObject: {fileID: 820468470} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 54233951} + m_Father: {fileID: 1729154661} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &844459426 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 844459427} + - component: {fileID: 844459430} + - component: {fileID: 844459429} + - component: {fileID: 844459428} + m_Layer: 0 + m_Name: TargetCollider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &844459427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 844459426} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 3, z: 0.36999983} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 660021080} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &844459428 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 844459426} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 94f0bf7ce367d3942a1f56ec8dd56e41, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &844459429 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 844459426} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} + m_Name: + m_EditorClassIdentifier: + serializedGuid: + serializedGuid: 70c21327b894cc4682eeaaad4a2ccbf0 + uniqueName: TargetCollider + tags: [] +--- !u!65 &844459430 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 844459426} + m_Material: {fileID: 0} + m_IsTrigger: 1 m_Enabled: 1 serializedVersion: 2 - m_Radius: 0.12 + m_Size: {x: 0.35, y: 0.1, z: 0.35} m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1241623317 -MeshRenderer: +--- !u!1 &846924386 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1241623309} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: a2e88723e4cd77a4690d0637321940aa, type: 2} - - {fileID: 2100000, guid: 1862d8e21d2bba649b255c6a7eb4eb61, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1241623318 -MeshFilter: + serializedVersion: 6 + m_Component: + - component: {fileID: 846924387} + - component: {fileID: 846924388} + m_Layer: 0 + m_Name: Input Action Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &846924387 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1241623309} - m_Mesh: {fileID: 6935877506589290101, guid: 1eef6eb71f126ba4aa31d33bb2f810c5, type: 3} ---- !u!1 &1268751233 + m_GameObject: {fileID: 846924386} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1634918261} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &846924388 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 846924386} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 017c5e3933235514c9520e1dace2a4b2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionAssets: + - {fileID: -944628639613478452, guid: de2411ef647d9f24d981120efb63e621, type: 3} +--- !u!1 &853416177 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8336,63 +7391,174 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1268751234} + - component: {fileID: 853416178} + - component: {fileID: 853416181} + - component: {fileID: 853416179} + - component: {fileID: 853416180} m_Layer: 8 - m_Name: Anchor + m_Name: Stair 1 Teleportation Area m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1268751234 + m_IsActive: 0 +--- !u!4 &853416178 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1268751233} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0.01, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_GameObject: {fileID: 853416177} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.4, z: 1.8} + m_LocalScale: {x: 0.04, y: 1, z: 0.04} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1731060433} - m_Father: {fileID: 232339300} - m_RootOrder: 0 + m_Children: [] + m_Father: {fileID: 33704422} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1269771530 -GameObject: +--- !u!114 &853416179 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1269771531} - m_Layer: 0 - m_Name: Little_2_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1269771531 -Transform: + m_GameObject: {fileID: 853416177} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} + m_Name: + m_EditorClassIdentifier: + serializedGuid: + serializedGuid: dab4a007ae520c47af9117adf3fb3c6f + uniqueName: Stair 1 Teleportation Area + tags: [] +--- !u!114 &853416180 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1269771530} - m_LocalRotation: {x: 0.007898328, y: 0.0033098771, z: -0.14792106, w: 0.9889621} - m_LocalPosition: {x: -0.021837996, y: 0.000000052452087, z: 0.0000003004074} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1445845522} - m_Father: {fileID: 1880415575} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1272409230 + m_GameObject: {fileID: 853416177} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: db00376f7b7d66e4da00d63492cb7971, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 2 + m_DistanceCalculationMode: 1 + m_SelectMode: 1 + m_FocusMode: 1 + m_CustomReticle: {fileID: 3819676577015031517, guid: c9ea54082e6151843acb776fb52ed6f7, type: 3} + m_AllowGazeInteraction: 0 + m_AllowGazeSelect: 0 + m_OverrideGazeTimeToSelect: 0 + m_GazeTimeToSelect: 0.5 + m_OverrideTimeToAutoDeselectGaze: 0 + m_TimeToAutoDeselectGaze: 3 + m_AllowGazeAssistance: 0 + m_FirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_LastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_FirstSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_LastSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_FirstFocusEntered: + m_PersistentCalls: + m_Calls: [] + m_LastFocusExited: + m_PersistentCalls: + m_Calls: [] + m_FocusEntered: + m_PersistentCalls: + m_Calls: [] + m_FocusExited: + m_PersistentCalls: + m_Calls: [] + m_Activated: + m_PersistentCalls: + m_Calls: [] + m_Deactivated: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_StartingInteractionStrengthFilters: [] + m_OnFirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnLastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectCanceled: + m_PersistentCalls: + m_Calls: [] + m_OnActivate: + m_PersistentCalls: + m_Calls: [] + m_OnDeactivate: + m_PersistentCalls: + m_Calls: [] + m_TeleportationProvider: {fileID: 0} + m_MatchOrientation: 0 + m_MatchDirectionalInput: 0 + m_TeleportTrigger: 3 + m_FilterSelectionByHitNormal: 0 + m_UpNormalToleranceDegrees: 30 + m_Teleporting: + m_PersistentCalls: + m_Calls: [] +--- !u!64 &853416181 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 853416177} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &858105912 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8400,30 +7566,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1272409231} + - component: {fileID: 858105913} m_Layer: 0 - m_Name: Thumb_Tip_Left + m_Name: Little_Tip_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1272409231 +--- !u!4 &858105913 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1272409230} - m_LocalRotation: {x: 0.0000000018626451, y: 0.000000005587936, z: -0.000000014901163, w: 1} - m_LocalPosition: {x: -0.029552078, y: 0.0000000667572, z: -0.00000015109777} + m_GameObject: {fileID: 858105912} + m_LocalRotation: {x: 0.000000022351742, y: 0.000000014901163, z: -0.00000002793968, w: 1} + m_LocalPosition: {x: -0.017860297, y: 0.00000007152557, z: -0.00000015258789} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1697840221} + m_Father: {fileID: 795450758} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1292505772 +--- !u!1 &861048854 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8431,63 +7597,338 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1292505773} - m_Layer: 0 - m_Name: Middle_0_Left + - component: {fileID: 861048855} + - component: {fileID: 861048858} + - component: {fileID: 861048856} + - component: {fileID: 861048857} + m_Layer: 8 + m_Name: Stair 2 Teleportation Area m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1292505773 + m_IsActive: 0 +--- !u!4 &861048855 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1292505772} - m_LocalRotation: {x: 0.037149172, y: -0.0391672, z: -0.020477412, w: 0.9983319} - m_LocalPosition: {x: -0.062340543, y: -0.00000025370625, z: -0.00000015303492} - m_LocalScale: {x: 1, y: 1, z: 1} + m_GameObject: {fileID: 861048854} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.8, z: 2.2} + m_LocalScale: {x: 0.04, y: 1, z: 0.04} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1854514984} - m_Father: {fileID: 2028302228} - m_RootOrder: 0 + m_Children: [] + m_Father: {fileID: 33704422} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1303642570 -GameObject: +--- !u!114 &861048856 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 861048854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} + m_Name: + m_EditorClassIdentifier: + serializedGuid: + serializedGuid: 4cc351be75c35a46af43ba76169788b7 + uniqueName: Stair 2 Teleportation Area + tags: [] +--- !u!114 &861048857 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 861048854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: db00376f7b7d66e4da00d63492cb7971, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 2 + m_DistanceCalculationMode: 1 + m_SelectMode: 1 + m_FocusMode: 1 + m_CustomReticle: {fileID: 3819676577015031517, guid: c9ea54082e6151843acb776fb52ed6f7, type: 3} + m_AllowGazeInteraction: 0 + m_AllowGazeSelect: 0 + m_OverrideGazeTimeToSelect: 0 + m_GazeTimeToSelect: 0.5 + m_OverrideTimeToAutoDeselectGaze: 0 + m_TimeToAutoDeselectGaze: 3 + m_AllowGazeAssistance: 0 + m_FirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_LastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_FirstSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_LastSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_FirstFocusEntered: + m_PersistentCalls: + m_Calls: [] + m_LastFocusExited: + m_PersistentCalls: + m_Calls: [] + m_FocusEntered: + m_PersistentCalls: + m_Calls: [] + m_FocusExited: + m_PersistentCalls: + m_Calls: [] + m_Activated: + m_PersistentCalls: + m_Calls: [] + m_Deactivated: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_StartingInteractionStrengthFilters: [] + m_OnFirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnLastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectCanceled: + m_PersistentCalls: + m_Calls: [] + m_OnActivate: + m_PersistentCalls: + m_Calls: [] + m_OnDeactivate: + m_PersistentCalls: + m_Calls: [] + m_TeleportationProvider: {fileID: 0} + m_MatchOrientation: 0 + m_MatchDirectionalInput: 0 + m_TeleportTrigger: 3 + m_FilterSelectionByHitNormal: 0 + m_UpNormalToleranceDegrees: 30 + m_Teleporting: + m_PersistentCalls: + m_Calls: [] +--- !u!64 &861048858 +MeshCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1303642571} - m_Layer: 0 - m_Name: Thumb_1_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1303642571 -Transform: + m_GameObject: {fileID: 861048854} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!43 &862649805 +Mesh: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1303642570} - m_LocalRotation: {x: 0.0000025456518, y: 0.0000026570444, z: 0.10506754, w: 0.9944651} - m_LocalPosition: {x: -0.03307885, y: 0.000000052452087, z: -0.00000030398368} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1184571259} - m_Father: {fileID: 1038510653} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1314657002 + m_Name: + serializedVersion: 10 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 2532 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 779 + localAABB: + m_Center: {x: 0, y: 0, z: -0.09999999} + m_Extent: {x: 0.19999997, y: 0.19999997, z: 0.09999999} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 0 + m_KeepVertices: 0 + m_KeepIndices: 0 + m_IndexFormat: 0 + m_IndexBuffer: 00000100020003000400050006000700080009000a000b000b000c0009000b000d000c000e000c000d000d000f000e0010000e000f00110010000f001200100011001200110013001400120013001400130015001600140015001600150017001800160017001800170019001a0011000f001b00180019001b0019001c000f001d001a001e001d000f001f001e000f000f0020001f001b001c00210022001b00210023002200210024002300210024002500230021002600240027002800290029002a00270029002b002a0029002c002b002c002d002b002e002a002b002b002f002e002f0030002e00300031002e0032002e00310033003200310033003100340034003500330035003400360037003500360036003800370034003900360034003a00390030003b003c003b003d003c003b003e003d003e003f003d003e0040003f00400041003f0040004200410042004300410042004400430044004500430044004600450046004700450046004800470048004900470048004a00490049004a004b004b004c0049004a004d004b004d004a00480048004e004d0048004f004e0050005100520052005300500052005400530050005300550055005300540054005600550056005700550055005800500055005900580059005a00580059005b005a005b005c005a005c005d005a005c005e005d005e005f005d005e0060005f00600061005f0060006200610062006300610062006400630064003200630065006600670067006600680068006900670066006a0068006a006b0068006b006c0068006b006d006c006b006e006d006e006f006d006f0070006d006f00710070006f00720071007200730071007200740073007400750073007400760075007700760078007800790077007a00780076007a0076007b007b007c007a007d007a007c007d007c007e007e007f007d007d007f008000800081007d0080008200810082008300810082008400830084008500830083008600810086008700810085008800830088008900830085008a0088008a008b0088008b008c0088008b008d008c008d008e008c008e008f008c008d0090008e00900091008e0091009000920093008e0091009100940093009500960097009700980095009800990095009a009900980098009b009a009b009c009a009b009d009c009d009e009c009d009f009e009b00a0009d009b00a100a0009d00a2009f009d00a300a200a200a4009f00a200a500a400a200a600a500a600a700a500a600a800a700a600a900a800a800aa00a700a800ab00aa00ac00aa00ab00ad00a700aa00aa00ae00ad00af00b000b100b100b200af00b200b300af00b200b400b300b400b500b300b400b600b500b700b800b900ba00bb00bc00bd00be00bf00c000c100c200c300c400c500c600c700c800c900ca00cb00cc00cd00ce00cf00d000d100cf00d100d200d200d300cf00d300d200d400d300d400d500d500d400d600d500d600d700d500d700d800d900cf00d300d500d900d300da00d500d800da00d800db00db00dc00da00db00dd00dc00db00de00dd00d500da00df00da00e000df00d500df00e100d500e100d900d900e200cf00cf00e200e300e400e200d900e100e400d900e400e500e200e600e100df00e100e600e400e600df00e700e800e600e700e800e900e600e400e600e900e900e800ea00e900ea00eb00ec00e900eb00e500e400ed00e400e900ed00ec00ed00e900e500ed00ee00ed00ec00ef00ed00ef00ee00f000f100f200f000f300f100f300f000f400f500f300f400f400f000f600f400f600f700f400f800f500f400f700f900fa00f800f400f400f900fa00fa00fb00f800f900fc00fa00fb00fa00fc00f900fd00fc00fe00fb00fc00ff00fe00fc000001ff00fc00fc00fd00010102010001fc000301fc000101fc000301020103010101040105010301040106010201030105010701030106010301070108010601070108010701090109010a0108010b010a0109010b0109010c010d010e010f010d010f01100111010d011001110112010d01110113011201110114011301150113011401160115011401170111011001170114011101180110010f01170110011801160114011901170119011401160119011a0116011a011b01190117011c0119011c011a0118011c0117011c011d011a0118010f011e011e010f011f011e011f01200121011e012001220118011e01210122011e01180123011c012201230118012101240122012301220124012101250124011c0126011d0126011c0123012301240127012601230127012701240128012701280129012a01270129012a01260127012a011d0126012a012b011d012c012d012e012c012e012f0130012c012f01300131012c01300132013101300133013201340133013001340130012f0134013501330136012f012e0134012f01360136012e01370136013701380139013501340139013a0135013b0134013601360138013b013b01390134013b0138013c013d013c0138013d013e013c013c013e013f0140013c013f013b013c0140013b01410139013b014001410140014201410140014301420140013f014301390141014401390144013a014201440141013a01440145013a014501460144014701450142014701440148014701420149014801420142014a0149014b014a0142014b01420143014b0143013f014c014b013f014d014c013f014e014d013f014f014e013f013f0150014f0151015201530153015401510151015401550151015501560151015601570156015501580158015901560158015a0159015a015b0159015a015c015b015d015e015f015f0160015d01600161015d0160016201610160016301620162016301640164016501620165016401660165016601670165016701680165016801690169016a01650169016b016a0169016c016b016b016c016d016e016b016d016d016f016e016f0170016e01700171016e016f0172017001700172017301730174017001730175017401730176017501770178017901770179017a017b0177017a017b017c0177017b017d017c017b017e017d017f017d017e0180017f017e0181017b017a0181017e017b0182017a01790181017a01820180017e018301810183017e01800183018401800184018501830181018601830186018401820186018101860187018401820179018801880179018901880189018a018b0188018a018c01820188018b018c01880182018d0186018c018d0182018b018e018c018d018c018e018b018f018e01860190018701900186018d018d018e01910190018d01910191018e0192019101920193019401910193019401900191019401870190019401950187019601970198019601980199019a01960199019a019b0196019a019c019b019a019d019c019e019d019a019e019a0199019e019f019d01a001990198019e019901a001a0019801a101a001a101a201a3019f019e01a301a4019f01a5019e01a001a001a201a501a501a3019e01a501a201a601a701a601a201a701a801a601a601a801a901a501a601aa01aa01a601a901a501ab01a301a501aa01ab01a301ac01a401a301ab01ac01aa01ad01ab01ad01ac01ab01a401ac01ae01a401ae01af01ac01b001ae01ad01b001ac01aa01a901b101aa01b101ad01b201b001ad01b101b201ad01b201b301b001b101b401b201b401b101a901b401a901b501b601b701b801b901b601b801b801ba01b901bb01b901ba01bb01bc01b901bd01bc01bb01be01bd01bb01bf01be01bb01bb01c001bf01c101bf01c001c001c201c101c301c001bb01ba01c301bb01ba01b801c401b801c501c401ba01c401c601ba01c601c301c301c701c001c001c701c801c901c701c301c601c901c301c901ca01c701cb01c601c401c601cb01c901cb01c401cc01cd01cb01cc01cd01ce01cb01c901cb01ce01c901ce01cf01cf01ca01c901cf01d001ca01d101d201d301d101d301d401d501d101d401d501d601d101d501d701d601d501d801d701d401d901d501d801d501d901d401da01d901da01d401d301d901db01d801d301dc01da01dd01dc01d301dd01d301de01df01d801db01db01e001df01e001e101df01e101e201df01e201e301df01e401df01e301e401e301e501e201e601e301e301e701e501e801e301e601e301e801e701e601e901e801e801ea01e701e901eb01e801e801ec01ea01e801eb01ec01ed01ee01ef01ed01ef01f001ed01f001f101ed01f101f201f101f301f201f101f401f301f001ef01f501f501f601f001f601f101f001ef01f701f501f801f701ef01f801f901f701f601fa01f101f101fa01fb01f101fb01fc01f101fc01fd01f401f101fd01f401fd01fe01fe01ff01f401fe010002ff01fe01010200020202f401ff0100020202ff0102020302f401000204020202000205020402000206020502060200020102010207020602080209020a020a020b0208020b020a020c020c020a020d020e0208020b020e020f0208020f020e021002100211020f0212020e020b02120210020e020b020c02130212020b021302100214021102140215021102140216021502140217021602180217021402180214021902180219021a021a021b0218021a021c021b021d0213020c021d020c021e021d021e021f021d021f022002210213021d0221021d022002210212021302210220022202220223022102220224022302210223022502210225021202120225021002250226021002270228022902270229022a022b0227022a022b022c0227022b022d022c022b022e022d022f022d022e0230022f022e0231022b022a0231022e022b0232022a02290231022a02320230022e023302310233022e02300233023402300234023502330231023602330236023402320236023102360237023402320229023802380229023902380239023a023b0238023a023c02320238023b023c02380232023d0236023c023d0232023b023e023c023d023c023e023b023f023e02360240023702400236023d023d023e02410240023d02410241023e0242024102420243024402410243024402400241024402370240024402450237024602470248024602480249024a024602490249024b024a024c024a024b024c024b024d024c024d024e024f024e024d024f0250024e024e0251024c024e02500252024e025302510253024e025202530254025102530255025402530256025502570256025302530252025802590258025202590252025a02580259025b02530258025c0258025b025c02570253025d0253025c025d0257025d025e025c025e025d025e025f0257025e0260025f02610260025e0261025e0262025e02630262025c0263025e025b0263025c025b0264026302650266026702650267026802650268026902650269026a026a0269026b026a026b026c026d026b02690268026d026902680267026e0267026f026e0268026e027002680270026d026d0271026b026b0271027202730271026d02700273026d02730274027102750270026e0270027502730275026e02760277027502760277027802750273027502780273027802790279027402730279027a0274027b027c027d027b027d027e027b027e027f027b027f0280027f02810280027f02820281027e027d028302830284027e0284027f027e02840285027f027f028502860282027f0286028602870282028702880282028702890288027d028a0283027d028b028a028b027d028c028c027d028d028c028d028e028c028f028b028c028e02900291028f028c028c0290029102910292028f0290029302910292029102930290029402930295029202930293029402960293029702950296029702930296029802970299029a029b029c029a0299029d029a029c029d029e029a029e029d029f029e029f02a0029f02a102a0029f02a202a102a2029f02a3029d02a3029f02a202a302a402a302a502a402a302a602a502a602a302a7029d02a702a302a602a702a802a702a902a802aa02a7029d02aa029d029c02a702aa02a902ab02aa029c02ab02a902aa02ab029c02ac029c029902ac02ab02ad02a902ad02ae02a902af02ad02ab02af02ab02ac02af02b002ad02b102ac029902af02ac02b102b1029902b202b102b202b302b102b302b402af02b102b402af02b402b502b502b002af02b502b602b002b702b802b902ba02b702b902b902bb02ba02bc02ba02bb02bb02b902bd02bb02bd02be02bc02bf02ba02bb02be02c002bb02c002bc02c102bf02bc02c202c102bc02c302c202bc02c002c402bc02bc02c402c302c002c502c402c602c302c402c402c702c602c802c602c702c802c702c902c802c902ca02ca02cb02c802cc02ca02c902cc02cd02ca02ce02cb02ca02ca02cd02cf02ce02ca02cf02d002ce02cf02d102d002cf02cf02d202d102d302d402d502d302d502d602d702d302d602d702d802d302d702d902d802d702da02d902db02d902da02dc02db02da02dd02d702d602dd02da02d702de02d602d502dd02d602de02dc02da02df02dd02df02da02dc02df02e002dc02e002e102df02dd02e202df02e202e002de02e202dd02e202e302e002de02d502e402e402d502e502e402e502e602e702e402e602e802de02e402e702e802e402de02e902e202e802e902de02e702ea02e802e902e802ea02e702eb02ea02e202ec02e302ec02e202e902e902ea02ed02ec02e902ed02ed02ea02ee02ed02ee02ef02f002ed02ef02f002ec02ed02f002e302ec02f002f102e302f202f302f402f202f402f502f202f502f602f202f602f702f702f602f802f702f802f902fa02f802f602f502fa02f602f502f402fb02f402fc02fb02f502fb02fd02f502fd02fa02fe02fd02fb02fe02fa02fd02fb02ff02fe02fe020003fa02fa020103f8020103fa020003f80201030203000303030103040301030303030305030403050306030403060307030403070308030403040308030903040309030a03 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 779 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 24 + format: 0 + dimension: 4 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 40 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 37392 + _typelessdata: 77562f3bcecc4cbd0ad723be000000000000803f00000000000000000000803f00000000000080bf0b98ec3e00ab133f54562f3b989919be0ad723be000000000000803f000000000000803f0000000000000000000080bf5005083f5a07023f54562f3bcecc4c3d0ad723be000000000000803f000000000000803f0000000000000000000080bf7325c93ea64e253f6b562fbbcccc4c3d0ad723be000000000000803f00000000000000000000803f000000000000803f3242c73ede5b243f60562fbb9999193e0ad723be000000000000803f00000000000080bf00000000000000000000803f9bcfa33e84ff353f60562fbbcecc4cbd0ad723be000000000000803f00000000000080bf00000000000000000000803fcab4ea3e37b8123fcecc4c3d0ad723be5d562fbb000000000000803f00000000000000000000803f00000000000080bf4247a33ef3efa83e999919be0ad723be5d562fbb000000000000803f00000000000000000000803f00000000000080bf0ae0a63e36e2ef3ececc4cbd0ad723be6d562fbb000000000000803f00000000eea07ebf00000000e8b2d3bd000080bfa613a53e1469cc3e235b21be235b213e37b088bb54e524bf496a423f4a4bbbbdb877acbcc9b6d03d2f9c7e3f000080bfdd683c3e6d37253f0ad723bec33d1f3e6eca8abb267f73bfeaeb9c3e9a2c17bd1663ecbbcb97c73d50c67e3f000080bfb6443c3eeff3253f0ad723be78c31f3e000000001b807dbff0b80d3e248888bcec4b3bbb5386cb3d50bb7e3f000080bf6085403ef8ec253f27731ebe0ad7233e639e83bbf8b9babecaff6d3f341754bdaf66afbb69335b3d25a17f3f000080bfa2a73c3ec05a243fa7081fbe0ad7233e00000000b1527bbd08827f3f2bbb0ebce17549bb5be70b3c4efd7f3f000080bf6aab403e6f80243f999919be0ad7233e74562fbb000000000000803f000000006f0b473c000000002afb7f3f000080bfd4fe3d3e753b233f672c1d3e0ad7233e00000000668ee83d1c587e3f000000002639873c8047f7baf4f67f3f000080bf6aab403eb228b63ecccc4cbd0ad7233e74562fbb000000000000803f000000004015473c000000002afb7f3f000080bfd4fe3d3e91740b3fcbcc4c3d0ad7233e74562fbb000000000000803f000000005ce4463c000000002cfb7f3f000080bfd4fe3d3e5a5be73e07d723bd0ad7233e0e77b4bb000000000000803f000000009424473c000000002afb7f3f000080bf342a3b3ec811093f06d7233d0ad7233e0e77b4bb000000000000803f000000004202473c000000002afb7f3f000080bf342a3b3e8b18ec3e54b0d0bc0ad7233e3ae719bc000000000000803f00000000610c473c000000002afb7f3f000080bfd247373ec59a053f54b0d03c0ad7233e3ae719bc000000000000803f00000000a833473c0000000028fb7f3f000080bfd247373e11fbf23e2de719bc0ad7233e5cb0d0bc000000000000803f000000005c17473c000000002afb7f3f000080bffc34273e07bc013f23e7193c0ad7233e5cb0d0bc000000000000803f000000003814473c000000002afb7f3f000080bffc34273ef888fa3efd76b4bb0ad7233e07d723bd000000000000803f00000000e20b473c000000002afb7f3f000080bf49b0183ebdc4003ff376b43b0ad7233e07d723bd000000000000803f000000000b0c473c000000002afb7f3f000080bf49b0183e934cfc3e9999193e0ad7233e74562fbb000000000000803f0000000010f6463c000000002cfb7f3f000080bfd4fe3d3e92cdb73e66562fbb0ad7233ececc4cbd000000000000803f00000000f510473c000000002afb7f3f000080bf80b10e3ef810003f59562f3b0ad7233ececc4cbd000000000000803f000000008c16473c000000002afb7f3f000080bf80b10e3e8896fd3e672c1d3e0ad7233eb01a70bbee55fd3e5f775e3f00000000a6048b3ced4e1ebc81f37f3f000080bff5013d3e4723b63ef558203ef558203e62d46dbb67733d3fec2c2c3f000000004cff9a3c8a8caabc11e67f3f000080bf3eea3c3e1531b53e0ad7233e2b811c3e1cfb63bbe3ad543f8f7d0e3f00000000f9b77d3c3159bdbca3e67f3f000080bfd5ec3c3ec126b43e0ad7233e2b811c3e00000000b2887d3f46ca0d3e00000000f9d7523b0b81bcbc4fee7f3f000080bff666403ee62bb43e74562f3b0ad7233e989919be000000000000803f000000008615473c000000002afb7f3f000080bfb0f62a3d9a02fd3e66562fbb0ad7233e999919be000000000000803f00000000b421473c000000002afb7f3f000080bfb0f62a3d018eff3e9e7289bb0ad7233ed4171fbed13ca5bc263d7e3f793aecbdf7aad0bd5ddde63d03077d3f000080bf3484153d801f003f628091b90ad7233e64cb1fbe72db2cbd8d8c643f0da6e5bea064d2bcfa47e53e4acd643f000080bf20c7123d2461fe3e24678bbbcde5223ef83220be5015b0bddfd72e3f0fb139bf4d974fbe9069333f16152f3f000080bf880f113d9034003fa9ec933b0ad7233ec73f20be0ec12cbd5daf633fbb0ee9be291402bcdf1ae93e72eb633f000080bfb000113d2319fc3e6fe889bbdb6c213edb6c21be72ac91bd2c0f233f828244bfb02a173fe1e417bfb60b0cbf000080bfad8fa03e0713373f24678bbbcde5223ef83220be5015b0bddfd72e3f0fb139bf9421163f3dca0dbf414d17bf000080bf1209a03ee451373f628091b90ad7233e64cb1fbe72db2cbd8d8c643f0da6e5bebe721b3f03ccaabed89a38bf000080bfb61ca13ee22f383f606284bbca881e3e0ad723bef1d71abdc954ad3e81b070bfc0a02c3f968a2fbf1d4c8cbe000080bf169fa13e329b363fdb078d3b0a7d1f3e0ad723bee4b63fbd7e9bd63efb1d68bf58fe293f5b402abf81f5aebe000080bf1a3ca43edc3f383fa9ec933b0ad7233ec73f20be0ec12cbd5daf633fbb0ee9bef9371b3f24bcadbeaa1c38bf000080bf79cda23e4d09393f33d2913bcddf213eccdf21bebebb91bd1f0f233f5f8244bf554b173f15d017bf03ff0bbf000080bfe175a33eb3af383f60562fbb9999193e0ad723be0000000000000000000080bf0f96343f947335bf00000000000080bf9bcfa33e84ff353f77562f3b9999193e0ad723be0000000000000000000080bf0a96343f987335bf00000000000080bfdcb2a53e4df2363f54562f3bcecc4c3d0ad723be0000000000000000000080bf8495343f207435bf00000000000080bf7325c93ea64e253f54562f3b989919be0ad723be0000000000000000000080bf1596343f8f7335bf00000000000080bf5005083f5a07023f60562fbbcecc4cbd0ad723be0000000000000000000080bfdf95343fc27335bf00000000000080bfcab4ea3e37b8123f6b562fbb999919be0ad723be0000000000000000000080bf1396343f917335bf00000000000080bfb013073f9114013f5062843bc9881ebe0ad723be76a3293d53e4bdbe68816dbfa2622c3fc4f52cbf48ad993e000080bf931d093fac6b013fc3078dbb097d1fbe0ad723be97b1233d003db7be22d36ebf019d2a3f67a32fbf4860953e000080bf11cf073f058eff3e16c890390ad723be6ccb1fbe86e02a3deb3b65bfaeece2bedbaa1b3f9690a8becbee383f000080bfb45e093fd9adff3e1cd291bbcddf21beccdf21be1eab913d010f23bfaa8244bf542b173faee417bf3b0b0c3f000080bf2e32083f56aefe3e93ec93bb0ad723bec73f20be191cdc3c59e774bf677894befac2233fc56953bebc893d3f000080bf6286083f22fbfd3e05678b3bb9e522be073320be14319f3dda5928bff7d33fbfe4b2163fe38913bf511d113f000080bf92e8093ffdb4003f65e8893bda6c21bedb6c21be37c3913dec0e23bf738244bff001173fbffc17bfc51d0c3f000080bf48a5093fd7f3003feb76b43b0ad7233d0ad723be0000000000000000000080bf9095343f117435bf00000000000080bfaab0cd3e940b243f77562f3bcecc4cbd0ad723be0000000000000000000080bff695343fac7335bf00000000000080bf0b98ec3e00ab133f1877b43b06d723bd0ad723be0000000000000000000080bfff95343fa47335bf00000000000080bf570cea3e0fef153f21e7193c57b0d03c0ad723be0000000000000000000080bf0e96343f947335bf00000000000080bfbf35d43efe2b223f3ae7193c5cb0d0bc0ad723be0000000000000000000080bfb295343ff17335bf00000000000080bf3345e63e4c2f193f54b0d03c2de7193c0ad723be0000000000000000000080bffc95343fa87335bf00000000000080bf6495df3e792f223f5cb0d03c3ae719bc0ad723be0000000000000000000080bfea95343fb87335bf00000000000080bf3d3ee63e1fdf1e3f04d7233d0677b43b0ad723be0000000000000000000080bf1096343f927335bf00000000000080bfde15e63e0b13243f07d7233d0e77b4bb0ad723be0000000000000000000080bf1f96343f837335bf00000000000080bf68fde93ea821223fcbcc4c3d6b562f3b0ad723be0000000000000000000080bfdf95343fc47335bf00000000000080bffc9dea3ee558253fcecc4c3d6d562fbb0ad723be0000000000000000000080bfc195343fe17335bf00000000000080bf8e83ec3e4567243f9899193e60562f3b0ad723be0000000000000000000080bfd795343fcb7335bf00000000000080bfa4f2063f3012373f9999193e77562fbb0ad723be0000000000000000000080bfb195343ff17335bf00000000000080bf6de5073f9020363fd18d1d3e2600773b0ad723beb7e1e93ece0f503db15b63bfdca62a3f9d3d2ebfe19d9b3e000080bf646f073fc4f2373f87751d3e0e4875bb0ad723be3a6ddc3eba1d71bd969166bf2ba1273fc9992abf7e8eb63e000080bf08c0083f5e9b363faefb1d3e151886320ad723be3103293f320a38bca44140bf50c3093fcac130bf8f80f73e000080bf522d083f985b373f0ad7233efc4775bb87751dbe474a5a3fc7f090bde38004bf0ab9cc3efb980cbf87db3b3f000080bf6ad9093f19b6373f72a5203e465c78bb71a520be9f2e343f45c2c4bd8c2e34bf18e10c3f96830dbf3732203f000080bfb64e093f7726373f0ad7233efdfb8932aefb1dbe980d7c3fb799deba661c33be539f063e7a0527bf86113f3f000080bf992f093f1b5f383f0ad7233e1300773bd08d1dbef820593f82cf6f3d6ec806bfc4c9e23e9e9e1fbf1dec243f000080bf9784083f4c09393fbeb1203ef00d7a3bc0b120be1576343f51bba03df17534bf7216193f2ba719bf38fb073f000080bfc2f7073f0580383fd38d1dbe530077bb0ad723bec716ddbeacae44bd319366bf78dc2c3f9ae32dbf5f3593be000080bf75fba43e1914003fc1b120be1b0e7abbc1b120bead7734bf7bd69fbd877734bf6202193ff8b819bfaffd07bf000080bfb8eaa33eb10dff3e0ad723be410077bbd28d1dbedb4a5abf567b6cbdd5e904bfd880df3e79ea1fbf16c125bf000080bf0ed1a23e23fbfd3eb1fb1dbe151886320ad723beb5f228bf1aefd13bd55340bfbe4c0a3f5add30bf11fef5be000080bf967fa33e46ab003f0ad723befcfb8932b0fb1dbe990a7cbf5d49433b675b33be9708063e5ae926bfb7303fbf000080bf0a7ba13e864fff3e8b751dbe2048753b0ad723be68ece6beab987c3debef63bf3d57253f187d2abfa31fbfbe000080bf2c5aa23e806b013f0ad723be0f48753b89751dbee0e058bfe968933d87c206bf526cd03eab7b0cbf76ec3abf000080bf6827a03ec450003f73a520be555c783b72a520be092e34bf820fc53dd42d34bfb3e80c3ff26d0dbfa43e20bf000080bfd03ca13e67e0003f999919be6d562fbb0ad723be0000000000000000000080bf2796343f7c7335bf00000000000080bff4f4a53eadf4003f999919be6b562f3b0ad723be0000000000000000000080bf1896343f8b7335bf00000000000080bf620fa43e4ee6013fcccc4cbd77562fbb0ad723be0000000000000000000080bfdf95343fc37335bf00000000000080bf413cc93ef9ad123fcecc4cbd60562f3b0ad723be0000000000000000000080bfd595343fcd7335bf00000000000080bfaf56c73e999f133f09d723bdfd76b43b0ad723be0000000000000000000080bfd095343fd17335bf00000000000080bfd4dcc93e35e5153f05d723bd1877b4bb0ad723be0000000000000000000080bfe895343fba7335bf00000000000080bf5fc4cd3ed3f3133f57b0d0bc2de7193c0ad723be0000000000000000000080bf0e96343f947335bf00000000000080bf009ccd3ec027193f54b0d0bc3ae719bc0ad723be0000000000000000000080bf0996343f9a7335bf00000000000080bfd844d43e65d7153f2de719bc54b0d03c0ad723be0000000000000000000080bfbf95343fe27335bf00000000000080bf0a95cd3e92d71e3f2be719bc5cb0d0bc0ad723be0000000000000000000080bf1d96343f857335bf00000000000080bf7da4df3ee0da153f0677b4bb05d7233d0ad723be0000000000000000000080bff195343fb27335bf00000000000080bfe6cdc93ecf17223ff576b4bb0ad723bd0ad723be0000000000000000000080bf3596343f6e7335bf00000000000080bf9229e63e4afb133f6b562fbbcccc4c3d0ad723be0000000000000000000080bffc95343fa77335bf00000000000080bf3242c73ede5b243f05678b3bb9e522be073320be14319f3dda5928bff7d33fbfae3e06bf5bbd1c3f8f7b17bf000080bf74ebf03efcd3b83e5572893b0ad723becd171fbe824ea53cc53c7ebf4154ecbdbec494be8e3ed63d997c73bf000080bf575df03e802cb93e16c890390ad723be6ccb1fbe86e02a3deb3b65bfaeece2be03d390bda132e13e993165bf000080bffec6f03e5290ba3e60562fbb0ad723be989919be00000000000080bf000000000000000000000000000080bf000080bf15cfed3e7b9cbb3e93ec93bb0ad723bec73f20be191cdc3c59e774bf677894be7e2809bc9368943e130075bf000080bfce15f13e5743bc3e5d562f3b0ad723be999919be00000000000080bf000000000000000000000000000080bf000080bf74b6ed3e90b6b93e6d562f3b0ad723becbcc4cbd00000000000080bf000000000000000000000000000080bf000080bf2ec4bb3e97b8b93e6b562fbb0ad723bececc4cbd00000000000080bf000000000000000000000000000080bf000080bfd2dcbb3e839ebb3e0677b4bb0ad723be06d723bd00000000000080bf000000000000000000000000000080bf000080bf3aebb63ee39fbc3e0677b43b0ad723be07d723bd00000000000080bf000000000000000000000000000080bf000080bf84b8b63ea0b7b83e38e7193c0ad723be54b0d0bc00000000000080bf000000000000000000000000000080bf000080bf6265af3e0357b73e2de719bc0ad723be5cb0d0bc00000000000080bf000000000000000000000000000080bf000080bfe1bbaf3e1601be3e57b0d0bc0ad723be38e719bc00000000000080bf000000000000000000000000000080bf000080bfbafda73ec4b5c33e5cb0d03c0ad723be23e719bc00000000000080bf000000000000000000000000000080bf000080bf2913a73efda2b13e0ad723bd0ad723be0677b4bb00000000000080bf000000000000000000000000000080bf000080bfb54fa63ee8dcc83e06d7233d0ad723befd76b4bb00000000000080bf000000000000000000000000000080bf000080bf65dfa43e027cac3ececc4cbd0ad723be6d562fbb00000000000080bf000000000000000000000000000080bf000080bfa613a53e1469cc3ececc4c3d0ad723be5d562fbb00000000000080bf000000000000000000000000000080bf000080bf4247a33ef3efa83e999919be0ad723be5d562fbb00000000000080bf000000000000000000000000000080bf000080bf0ae0a63e36e2ef3e6c2c1dbe0ad723be00000000835d95bd77517fbf000000000000000000000000000080bf000080bf059aa53e2c1ff13e6c2c1dbe0ad723bede1a70bb3755fdbe94775ebf000000000000000000000000000080bf000080bf786ea73e191ff13e9e081f3e0ad723be000000004e4f0f3ef56d7dbfc2c5a2bc334405bd13467d3c77d57fbf000080bf5a0ca03e0195833e9899193e0ad723be6d562fbb00000000000080bf000000000000000000000000000080bf000080bfde7aa13ed376853e20731e3e0ad723be1d9e83bb38bbba3e88ff6dbfde1754bd256915bd022d293d6d9c7fbf000080bf8e10a23eb6c8833e0ad7233e71c31fbe00000000ba917f3f18cf6bbd5f2be3bb56c7a4bb5dca073d25db7fbf000080bf1209a03e7d83803e1e5b213e205b21befaaf88bb5ae5243f446a42bfac4bbbbd7eac84bd4e0e853d96eb7ebf000080bf7022a23e0dec813e0ad7233ebd3d1fbe37ca8abbf27e733f32ed9cbe5b2d17bd2a47eabc8246013d88c47fbf000080bffc28a23e6055803e0ad7233e999919be77562fbb0000803f00000000000000000000000000000000000080bf000080bfde7aa13e78c87c3e0ad7233e2b811c3e00000000b2887d3f46ca0d3e000000000000000000000000000080bf000080bf0297a53e08111d3d0ad7233ececc4cbd6d562fbb0000803f00000000000000000000000000000000000080bf000080bf4247a33e0647363e0ad7233ecccc4c3d77562fbb0000803f00000000000000000000000000000000000080bf000080bfa613a53e248bdf3d0ad7233e07d723bd0e77b4bb0000803f00000000000000000000000000000000000080bf000080bf65dfa43ef6392f3e0ad7233e5cb0d0bc3ae719bc0000803f00000000000000000000000000000000000080bf000080bf2913a73e12fc243e0ad7233e9999193e6d562fbb0000803f00000000000000000000000000000000000080bf000080bf0ae0a63e7810253d0ad7233e2b811c3e1cfb63bbe3ad543f8f7d0e3f000000000000000000000000000080bf000080bfce53a73e74101d3d0ad7233e54b0d03c3ae719bc0000803f00000000000000000000000000000000000080bf000080bfbafda73efb0f013e0ad7233e05d7233d1877b4bb0000803f00000000000000000000000000000000000080bf000080bfb54fa63ecca4ed3d0ad7233e3ae719bc5cb0d0bc0000803f00000000000000000000000000000000000080bf000080bf6265af3edaa4193e0ad7233e1877b4bb06d723bd0000803f00000000000000000000000000000000000080bf000080bf84b8b63ed4e6163e0ad7233e2de7193c5cb0d0bc0000803f00000000000000000000000000000000000080bf000080bfe1bbaf3ee5650c3e0ad7233e77562fbbcecc4cbd0000803f00000000000000000000000000000000000080bf000080bf2ec4bb3e46e7143e0ad7233e60562f3bcecc4cbd0000803f00000000000000000000000000000000000080bf000080bfd1dcbb3e7921113e0ad7233efd76b43b07d723bd0000803f00000000000000000000000000000000000080bf000080bf3aebb63ebc220f3e0ad7233e6d562fbb989919be0000803f00000000000000000000000000000000000080bf000080bf72b6ed3e36e3143e0ad7233efdfb8932aefb1dbe980d7c3fb799deba661c33be6f1c33be00000000b00d7cbf000080bf12e6ef3e2200133e0ad7233efc4775bb87751dbe474a5a3fc7f090bde38004bf100e04bfae492e3d6d0a5bbf000080bf6893ef3eb1a3153e0ad7233e6b562f3b999919be0000803f00000000000000000000000000000000000080bf000080bf16cfed3e681d113e0ad7233e1300773bd08d1dbef820593f82cf6f3d6ec806bf567506bffd9315bd3fa559bf000080bfd6c1ef3ee257103ef85820bef75820be9ed46dbb78733dbfdc2c2cbf0000000075cb01bd75d10e3d39b77f3f000080bf789b2d3faae97e3e6c2c1dbe0ad723bede1a70bb3755fdbe94775ebf0000000022701fbd188fb53c39be7f3f000080bf018c2d3f73c1813e6c2c1dbe0ad723be00000000835d95bd77517fbf00000000268f0bbd094a233bbed97f3f000080bf02762e3f87d7813e0ad723be2e811cbe00000000a6cd7fbfe58620bd00000000ea5f03bb3459513d37aa7f3f000080bfd6912e3f98057a3e0ad723be2e811cbe52fb63bb4efc5ebfc680fbbe000000009abacdbcd366363d4daa7f3f000080bfa5b32d3fa9db793e0ad723be989919be59562fbb000080bf0000000000000000000000006ea7873d13707f3f000080bff4e62d3f3fe2773e0ad723be78c31f3e000000001b807dbff0b80d3e248888bc262bf2bb21c4893dc2697f3f000080bfd6912e3fd87ff73c0ad723bececc4cbd6d562fbb000080bf00000000000000000000000096a5873d17707f3f000080bff4e62d3f16f3303e0ad723bececc4c3d59562fbb000080bf000000000000000000000000a2ab873d0b707f3f000080bff4e62d3fd407d43d0ad723be0ad723bd0677b4bb000080bf000000000000000000000000e6a2873d1d707f3f000080bf13322d3f09b9293e0ad723be5cb0d0bc36e719bc000080bf0000000000000000000000001da6873d17707f3f000080bfdc392c3f853c1f3e0ad723be9999193e6d562fbb000080bf000000000000000000000000bfa5873d17707f3f000080bff4e62d3f00530c3d0ad723bec33d1f3e6eca8abb267f73bfeaeb9c3e9a2c17bd50cb80bc370a923d0c517f3f000080bf4e832d3f60ccf83c0ad723be57b0d03c23e719bc000080bf0000000000000000000000002ea4873d1b707f3f000080bfdc392c3f0e31f63d0ad723be09d7233df376b4bb000080bf0000000000000000000000006c0f873d56717f3f000080bf13322d3f68f3e13d0ad723be36e719bc5cb0d0bc000080bf0000000000000000000000005ca5873d17707f3f000080bfbb36283f7712133e0ad723be0677b4bb0ad723bd000080bf000000000000000000000000bba5873d17707f3f000080bffc96243fafa10f3e0ad723be2de7193c54b0d0bc000080bf00000000000000000000000031bd873de56f7f3f000080bfbc36283fe6be053e0ad723be6d562fbbcecc4cbd000080bf0000000000000000000000005fa5873d17707f3f000080bf4518223fe4260d3e0ad723be66562f3bcbcc4cbd000080bf00000000000000000000000025a5873d19707f3f000080bf4518223f385b093e0ad723befd76b43b06d723bd000080bf000000000000000000000000cc95873d39707f3f000080bffc96243f82d1073e0ad723befcfb8932b0fb1dbe990a7cbf5d49433b675b33bed3bd32bef7d88a3dbe787b3f000080bfbe13083f0f58063e0ad723be60562f3b989919be000080bf00000000000000000000000003a6873d17707f3f000080bf2425093fd3a5043e0ad723be0f48753b89751dbee0e058bfe968933d87c206bf083304bf7cb8f83d3602593f000080bf6e34083f97b6033e0ad723be74562fbb999919be000080bf0000000000000000000000009fa5873d17707f3f000080bf2425093f8071083e0ad723be410077bbd28d1dbedb4a5abf567b6cbdd5e904bf0f8d05bf1e602d3d77225a3f000080bf832e083f8609093ea7081fbe0ad7233e0000000000000000000000000000803f000000000000803f00000000000080bf1209a03e203a963b0ad723be78c31f3e0000000000000000000000000000803f000000000000803f00000000000080bf670b9e3e000000000ad723be2e811cbe0000000000000000000000000000803f000000000000803f00000000000080bf0048e53b000000006c2c1dbe0ad723be0000000000000000000000000000803f000000000000803f00000000000080bf00000000a05fd03b672c1d3e0ad7233e0000000000000000000000000000803f000000000000803f00000000000080bf1209a03e91c79c3e9e081f3e0ad723be0000000000000000000000000000803f000000000000803f00000000000080bf0000000025b09d3e0ad7233e2b811c3e0000000000000000000000000000803f000000000000803f00000000000080bfef739c3e1209a03e0ad7233e71c31fbe0000000000000000000000000000803f000000000000803f00000000000080bf40d77e3b1209a03ecbcc4c3d6b562f3b0ad723be00000000000000000000803f0a5835bfb4b134bf000000000000803fde755b3e12efe43e04d7233d0677b43b0ad723be00000000000000000000803f0a5835bfb4b134bf000000000000803f53b35b3e9666e03e54b0d03c2de7193c0ad723be00000000000000000000803f0a5835bfb4b134bf000000000000803f8a0e5c3e91e5d93e57b0d0bc2de7193c0ad723be00000000000000000000803ff3672e3f3f663bbf000000000000803f03f3863e79973b3f09d723bdfd76b43b0ad723be00000000000000000000803ff3672e3f3d663bbf000000000000803fd1488a3e90c9383fcecc4cbd60562f3b0ad723be00000000000000000000803ff3672e3f3d663bbf000000000000803fce9c8c3e8dd5363f0ad723be57b0d03c23e719bc0000803f000000000000000000000000000000000000803f0000803fb837793f62e9d53e0ad723be09d7233df376b4bb0000803f000000000000000000000000000000000000803f0000803f3ca6763f69c6d03e0ad723bececc4c3d59562fbb0000803f000000000000000000000000000000000000803f0000803f96e1743f1c3dcd3e6b562fbb0ad723bececc4cbd000000000000803f000000000000000000000000000080bf0000803fd2dcbb3e839ebb3e0677b4bb0ad723be06d723bd000000000000803f000000000000000000000000000080bf0000803f3aebb63ee39fbc3e2de719bc0ad723be5cb0d0bc000000000000803f000000000000000000000000000080bf0000803fe1bbaf3e1601be3ecccc4cbd77562fbb0ad723be00000000000000000000803f9f2f8cbea337763f000000000000803fe199563fb2edf83e05d723bd1877b4bb0ad723be00000000000000000000803f9f2f8cbea337763f000000000000803f3623583f47e5f53e54b0d0bc3ae719bc0ad723be00000000000000000000803fa02f8cbea337763f000000000000803f28625a3f0c78f13e0ad723bececc4cbd6d562fbb0000803f00000000000000000000000000000000000080bf000080bff2f8773f3ae3fb3e0ad723be0ad723bd0677b4bb0000803f00000000000000000000000000000000000080bf000080bf5dd6793f588ef83e0ad723be5cb0d0bc36e719bc0000803f00000000000000000000000000000000000080bf000080bfd48b7c3f81b7f33e38e7193c0ad723be54b0d0bc000000000000803f0000000046ec7f3f00000000b3fcc8bc0000803fe4026f3f2cfa5e3c0677b43b0ad723be07d723bd000000000000803f0000000046ec7f3f00000000b4fcc8bc0000803f7b9f6e3ff6f4e33c6d562f3b0ad723becbcc4cbd000000000000803f0000000046ec7f3f00000000b3fcc8bc0000803ff7536e3fd7151a3d5cb0d03c3ae719bc0ad723be00000000000000000000803ff3b4acbefcfe703f000000000000803fd429753f5968603f07d7233d0e77b4bb0ad723be00000000000000000000803ff3b4acbefcfe703f000000000000803ff5c3723fc6845d3fcecc4c3d6d562fbb0ad723be00000000000000000000803ff3b4acbefbfe703f000000000000803f9e1b713f01855b3f9c15323e2bc0573c80b9d5bc026c063f4d723fbf84fdcf3e96198f3e264199be648c69bf000080bfd0dbaf3e1cbcff3d0ad7233e2de7193c5cb0d0bcc779733efa4f48bf4b54133fd0d0993e781301bff0444fbf000080bfe1bbaf3ee5650c3e0ad7233efd76b43b07d723bdc1fb813e458c6ebf10c5843e9f71553e6e1c56be949674bf000080bf3aebb63ebc220f3e0ad7233e60562f3bcecc4cbd3a4b843efd3c77bfab21ba3c0cf7a03debf61ebb11357fbf000080bfd1dcbb3e7921113e992a333e4fe2da3bcfcc4cbd88f80f3f9c8053bfb5b20a3d13e0203dafe468bccfc67fbf000080bf58aabb3e53b0033e0ad7233e6b562f3b999919be9053843e8f4c77bf484fa2bbf0f498bd489d73bcb4417fbf000080bf16cfed3e681d113e992a333e4fe2da3b989919bef1ed0f3f2b8753bf9aae0bbdfb0f22bdae826a3cf7c57fbf000080bf9c9ced3e43ac033e0ad7233e1300773bd08d1dbea8467f3e7a896ebf6d1a87be414759be9d6b5a3e7d2374bf000080bfd6c1ef3ee257103ebeb1203ef00d7a3bc0b120be0ba6723e94dc71bf5ad467befe863cbe9c953d3eab1e77bf000080bf5158f13e497d123ed18d1d3e2600773b0ad723be7ca8823e80686ebf691c85be8a2b50bec243583efac074bf000080bf02eff23e90b2143eb9f5453e9911cd3ccfcc4cbd6a2e5e3f064afdbeed41383d3084b13c4f2358bd49957fbf000080bf58aabb3ec874d33d9c15323e2bc0573c9c1532be5d30ea3e582743bf546feabe5fc29bbee90ab33e38d762bf000080bf9eb0f93e1ab0ff3d9899193e60562f3b0ad723be4fa6a83ceb3f77bfcd4c84beeebb66bee2417d3e1e3f71bf000080bfc0fbf23e3b35183e9899193e4fe2da3b992a33beb6b20a3d9c8053bf88f80fbfb2b77fbe8ab1093f3f214ebf000080bfee87fa3edb61153ecbcc4c3d4fe2da3b992a33beb2b20abd9d8053bf87f80fbf3be980be69360d3fc4914bbf000080bf5254fc3e1d545c3ecbcc4c3d6b562f3b0ad723be7b29e0bc432d77bfc08584bee0be7ebed1c4833ecc096fbf000080bf24c8f43e7c275f3ec9503f3e7bb9d53c9c1532be55ee4e3f5625d5be4f25d5bebef7a3be929a903e247d67bf000080bf9eb0f93e3c22db3d9d15323e7db9d53cc9503fbe5525d53e5525d5be54ee4ebfcc0012bf19a4123f75b716bf000080bf1d30003fb076ed3db9f5453e9711cd3c989919be6a2e5e3f064afdbeeb4138bda5dab2bc03f8563d0a967fbf000080bf9c9ced3eac6cd33dc9503f3e7db9d53c80b9d5bc54ee4e3f5525d5be5825d53e08e4a33e1dbd90be3c7b67bf000080bfd0dbaf3e402edb3d9c15323e7bb9d53c40c057bc0a29043fb7b5cdbeed9f413fcd790c3f26db05bf04fd26bf000080bf2ea3a93ecc84ed3dcbcc4c3ececc4c3dcbcc4cbd7e487f3fa09758bda697583de3133f3d4600e7bdf9157ebf000080bf8afebb3e7cc5a63db9f5453ececc4c3da011cdbc692e5e3fee4138bd0a4afd3eee81f03ef48e7fbe6fc758bf000080bfeba4af3eee41b03dcbcc4c3ecccc4c3d989919be7e487f3fa39758bd9e9758bdeb2b3fbd0334e63dcc187ebf000080bfcdf0ed3e5cbda63db9f5453ececc4c3d992a33be6a2e5e3feb4138bd064afdbe188af0be002d7f3e62cc58bf000080bfee87fa3ec035b03db9f5453e9899193e992a33be6a2e5e3fea41383d064afdbebd6ff8be4e7a943e852c53bf000080bf5254fc3e70cb8c3ccbcc4c3e9999193e999919be7e487f3fa297583d9f9758bd1d4378bd9a19213ede557cbf000080bf32bdef3ec0d34d3cc9503f3e9c15323e9d1532be54ee4e3f5825d53e5525d5be18740abf05937b3e7cf04dbf000080bf2d59fc3ec006ab3bb9f5453e982a333e989919be692e5e3f064afd3ef04138bde24223bed73e443ee1ea77bf000080bfe44ef03e00000000b9f5453e982a333ecfcc4cbd692e5e3f064afd3eed41383d8f86233eccb844be0de277bf000080bfa15cbe3e00408237cbcc4c3e9999193ecbcc4cbd7e487f3fa397583da397583d575a783d4b9c21be8e507cbf000080bfedcabd3eb0144e3cb9f5453e9899193ea011cdbc692e5e3ff041383d0b4afd3e3869f83e17b594be192453bf000080bf4f71b13e30fc8c3cc9503f3e9c15323e80b9d5bc51ee4e3f5825d53e5a25d53e327c0a3fd00c7cbebae14dbf000080bf5e84b23e00c7ab3b9c15323e7bb9d53c40c057bc0a29043fb7b5cdbeed9f413fcd9e29bf1d373fbfd636633d000080bf05e1d83e2a523b3f0ad7233e2de7193c5cb0d0bcc779733efa4f48bf4b54133fac9029bf366110bf307efcbe000080bfd0b3e33e16d43a3f9c15323e2bc0573c80b9d5bc026c063f4d723fbf84fdcf3ead4e1ebf2fc829bf21dcd7be000080bfc272dd3e4c09393f0ad7233e54b0d03c3ae719bcdb87753e013e0bbf0ddd4d3fa1b133bfa25a2bbfba4879be000080bffc03de3e00ac3d3f992a333ececc4c3d60e2dabbbe09113f0c62f7bcf6ce523fe5a01cbf87502fbf56aaca3e000080bfbe0cd03ea65c3f3f0ad7233e05d7233d1877b4bb5bf4783ec51c82be4aa56f3f20ff34bf8a0735bf74c308bc000080bf05e1d83e7c3d403fc9503f3e7db9d53c80b9d5bc54ee4e3f5525d5be5825d53e9a2e15bfb1992abfc920ee3e000080bf474fd43e4c09393fb9f5453ececc4c3da011cdbc692e5e3fee4138bd0a4afd3e2999cfbe92b523bf2937273f000080bf408fc93ee71d3c3f0ad7233ecccc4c3d77562fbb6451843eec474cbc6948773f29352fbf4c4235bfe424323e000080bfb857d53e2202423fb9f5453e9899193ea011cdbc692e5e3ff041383d0b4afd3e974bc8be16460dbfcf8a3c3f000080bf4932a63e63cc4d3f992a333e9899193e60e2dabb8bf80f3fb7b20a3d9c80533f604f21bf322221bf5cd1e83e000080bfc6afac3e220b513f0ad7233e9999193e6d562fbb154d843eccb3a53c6140773fd69233bf1ef92ebf3cd54e3e000080bfc0fab13e9fb0533f9c15323e9c15323e40c057bcf473ef3e2e75ef3eb801403fe7c407bff3c407bf0b52293f000080bfd09aa43e4575553fc9503f3e9c15323e80b9d5bc51ee4e3f5825d53e5a25d53ea47b86bee772c1be3e49633f000080bf1309a03e662c533f0ad7233e2b811c3e1cfb63bb9c467f3e7c1a873e7a896e3f54ae28bfe3ad28bfcbcbb93e000080bff6f9b03e0331543ff558203ef558203e62d46dbb0e14833e4ead833eb38c6e3f1bae28bf1bae28bfd0cbb93e000080bffcdab03e4575553f672c1d3e0ad7233eb01a70bb731a873eb6467f3e78896e3f16ae28bf1fae28bfd0cbb93e000080bfd4beb03ef59b563f9c15323ec7503f3e80b9d5bc5525d53e51ee4e3f5f25d53ea572c1bed47b86be4449633f000080bf1409a03e23be573f9999193e0ad7233e74562fbb0595a73cf64c843e1440773f98f92ebf8e8f33bf63fc4e3e000080bfc0fab13eeb39573f9899193e982a333e60e2dabbb0b20a3d8bf80f3f9c80533f2d2221bf644f21bf5dd1e83e000080bfc8afac3e68df593f9899193eb9f5453ea011cdbcf741383d672e5e3f124afd3e0d460dbfa44bc8bed38a3c3f000080bf4932a63e271e5d3fcbcc4c3db9f5453ea011cdbcf74138bd662e5e3f144afd3e3ec018bf664dd7be3bf82e3f000080bf408fc93ea2cc6e3fcbcc4c3d0ad7233e74562fbbc3474cbc6a51843e6748773f754235bf01352fbfc524323e000080bfb857d53e67e8683fcbcc4c3d982a333e60e2dabbd7f800bd13ab103fcf0c533fa80933bffd0a1abfd681c53e000080bfbf0cd03ee48d6b3f06d7233d0ad7233e0e77b4bb2ea785bee218813e838b6e3faaf434bf341335bf170dd9bb000080bf04e1d83e0dad6a3f78b9d53c9c15323e40c057bc632bcfbe4b91053fe543403f214e52bfd57411bf551344bd000080bf05e1d83e5f986f3f54b0d03c0ad7233e3ae719bc485413bfc979733efe4f483f618926bfb38136bfcf0e86be000080bffc03de3e893e6d3f23e7193c0ad7233e5cb0d0bc0ddd4dbfcf87753e043e0b3f89cf0abf9fbb2bbf178501bf000080bfd0b3e33e7316703f20c0573c9c15323e80b9d5bceb9f41bf0a29043fb5b5cd3e1f4827bf200b20bfd787dabe000080bfc272dd3e3ee1713fb9f5453ececc4c3d992a33be6a2e5e3feb4138bd064afdbe216dc7bce0a77d3fdbfe07be000080bfaebd143f1ce32e3fc9503f3e7bb9d53c9c1532be55ee4e3f5625d5be4f25d5be22b5693e5b965f3f1748dcbe000080bf10c30e3f7882303f9d15323e7db9d53cc9503fbe5525d53e5525d5be54ee4ebf6c3cb83b2be3633fc03fe9be000080bf10c30e3f99bd333f992a333ececc4c3db9f545be064afd3eeb4138bd6a2e5ebff60f25bdec137f3f0dd098bd000080bfaebd143ff679333f992a333e9899193eb9f545be064afd3eea41383d6a2e5ebf8a10253dec137f3f36d0983d000080bf18bf2d3ff679333fb9f5453e9899193e992a33be6a2e5e3fea41383d064afdbed76cc73ce0a77d3fc9fe073e000080bf18bf2d3f1ce32e3fc9503f3e9c15323e9d1532be54ee4e3f5825d53e5525d5be67a913be3558533fa1aa0b3f000080bfb6b9333f7882303f9c15323e9c15323ec9503fbe5125d53e5725d53e55ee4ebf7e53863c48ac623ff1cded3e000080bfb6b9333f9abd333f9c15323ec7503f3e9c1532be5a25d53e53ee4e3f5725d5be40faf5bd7fb3003f57265b3f000080bfd7f4363f9abd333f9899193eb9f5453e992a33befa41383d672e5e3f0e4afdbea2a349bcf1c5fd3ebc515e3f000080bf3394383f37b8393f9899193e9999193ecbcc4cbe9e97583da297583d7e487fbf42558b3baea27f3f93d0593d000080bf18bf2d3f37b8393f9999193ececc4c3dcbcc4cbe9f97583d9e9758bd7e487fbf17528bbbaea27f3f89d059bd000080bfaebd143f37b8393f9899193e982a333eb9f545bef241383d064afd3e692e5ebf0000000034685e3f328bfd3e000080bf59fd333f37b8393fcfcc4c3d982a333eb9f545bef04138bd084afd3e692e5ebf75fc7d3b496d5e3f6177fd3e000080bf59fd333fa1b9523fcfcc4c3db9f5453e992a33bef94138bd672e5e3f0e4afdbea0a3493cf1c5fd3ebc515e3f000080bf3394383fa1b9523fcbcc4c3d9999193ecbcc4cbea39758bd9f97583d7e487fbf7e5a8bbbaea27f3f9ad0593d000080bf18bf2d3fa2b9523f80b9d53c9c15323ec9503fbe5a25d5be5a25d53e53ee4ebf14a6923dd8b9663f20c6da3e000080bfb6b9333f3fb4583f9899193e9911cd3cb9f545beed41383d064afdbe6a2e5ebf0000000034685e3f308bfdbe000080bf6c7f0e3f37b8393f9c15323e2bc0573c9c1532be5d30ea3e582743bf546feabe8f7fce3d8f580e3f5d3453bf000080bfef870b3f99bd333f9899193e4fe2da3b992a33beb6b20a3d9c8053bf88f80fbf8babd23bb918103f869653bf000080bf92e8093f37b8393fcbcc4c3d4fe2da3b992a33beb2b20abd9d8053bf87f80fbf83abd2bbb618103f879653bf000080bf92e8093fa1b9523fcbcc4c3d9711cd3cb9f545beea4138bd064afdbe692e5ebf0000000034685e3f328bfdbe000080bf6c7f0e3fa1b9523fcbcc4c3dcccc4c3dcbcc4cbea09758bda39758bd7e487fbf355c8b3baea27f3f9fd059bd000080bfaebd143fa2b9523f78b9d53c7bb9d53cc9503fbe5125d5be5125d5be57ee4ebfde34b8bb29e3633fc73fe9be000080bf10c30e3f3fb4583f78b9d53c2bc0573c9c1532be9ff1ccbe033142bf0ba003bfbfd58fbd61b6153f09e14ebf000080bfef870b3f3fb4583fa011cd3c9899193eb9f545be064afdbefa41383d692e5ebfeb0f25bdec137f3f15d0983d000080bf18bf2d3fe2f7583f9811cd3ccecc4c3db9f545be064afdbed54138bd6a2e5ebf3a10253dec137f3f14d098bd000080bfaebd143fe2f7583f20c0573c7db9d53c9d1532bee34340bf642bcfbe4f9105bf96ce34bec96f623fd614ddbe000080bf10c30e3f60ef5b3f40e2da3bcecc4c3d992a33becf0c53bfb1f800bd13ab10bfceb32e3deefd7d3f38a6f0bd000080bfaebd143fbd8e5d3f60e2da3b9899193e992a33be9c8053bfd0b20a3d8af80fbf7fa425bd36f77d3f9900f43d000080bf18bf2d3fbc8e5d3f40c0573c9c15323e9c1532beb5d23fbfc8bfef3ef9bfefbe444d763e55ec593f9ec7ee3e000080bfb6b9333f60ef5b3fb9f5453e982a333e989919be692e5e3f064afd3ef04138bd2bb866bdf67e403eaf057b3f000080bfd0322d3d1209a03ec9503f3e9c15323e9d1532be54ee4e3f5825d53e5525d5be3bfd063eeba80f3fbb2f513f000080bf30e39a3c7425a33e9c15323ec7503f3e9c1532be5a25d53e53ee4e3f5725d5be089229bd67cff23ed521613f000080bf08bf9e3ca24aa73e992a333eb9f5453e989919be104afd3e672e5e3ffb4138bd39edaebd47f0cc3d57c67d3f000080bf58f02f3d5ceca53e992a333eb9f5453ecfcc4cbd0e4afd3e672e5e3ffa41383d7ce9ed3d684ef0bd797c7c3f000080bfe9ef0f3e4a80a63eb9f5453e982a333ecfcc4cbd692e5e3f064afd3eed41383d4581a03d673567beaa94783f000080bf86400f3e009da03ec9503f3e9c15323e80b9d5bc51ee4e3f5825d53e5a25d53e35a2dabd7a7c17bf038d4c3f000080bfa11c273e2200a43e9c15323ec7503f3e80b9d5bc5525d53e51ee4e3f5f25d53eb6a4923dc49ef8be550a5f3f000080bf1a98273e4e25a83e9899193ecbcc4c3ecbcc4cbda097583d7e487f3fa997583d92827f3dbcfb65bdc8187f3f000080bfc02f103e2757b13e9899193eb9f5453ea011cdbcf741383d672e5e3f124afd3e6bc3bb3df84ffebec7f15c3f000080bf79e4283eae84b23e9999193ecbcc4c3e989919bea497583d7e487f3fa09758bd1a0a18bd17c9603d01707f3f000080bfb0ef303d38c3b03e9899193eb9f5453e992a33befa41383d672e5e3f0e4afdbea47688bde450fe3edf875d3f000080bf203c983ce1a6b13ecfcc4c3db9f5453e992a33bef94138bd672e5e3f0e4afdbe30b8f7bdff41f93eeb755d3f000080bf283c983ca834e13ecbcc4c3dcbcc4c3ecbcc4cbda69758bd7e487f3fa897583dd34b473d84194ebd435f7f3f000080bfbf2f103eefe4e03ecbcc4c3db9f5453ea011cdbcf74138bd662e5e3f144afd3e1374113ef01ff8be21f55c3f000080bf79e4283e7512e23ecbcc4c3dcbcc4c3e999919bea79758bd7e487f3fa79758bd9d4ad0bc8451533d82937f3f000080bfacef303d0051e03e80b9d53cc7503f3e9c1532be5f25d5be51ee4e3f5525d5bea96aecbd4d78d03e84f1673f000080bf10bf9e3c0e96ed3ecfcc4c3d982a333eb9f545bef04138bd084afd3e692e5ebf31446abe9e30573fe063fb3e000080bf0000000078f0e33e80b9d53c9c15323ec9503fbe5a25d5be5a25d53e53ee4ebf724ca1bea995443fbac70e3f000080bf2046ce3bbf82ef3e40c0573c9c15323e9c1532beb5d23fbfc8bfef3ef9bfefbe688670be4047f23e425c593f000080bf40e39a3cd7baf53ea011cd3cb9f5453e989919be104afdbe672e5e3f024238bd897a273c8ece6b3de18f7f3f000080bf58f02f3d0a39ed3e9811cd3cb9f5453ecfcc4cbd104afdbe672e5e3fe341383d3e82273cb3323cbd5db77f3f000080bfe9ef0f3ef9cced3e40e2da3b982a333ecfcc4cbdf9ce52bfbb09113fc761f73c6a7defbc2ba3c3bd2ab87e3f000080bf86400f3e325ef93e60e2da3b982a333e989919be9c8053bf8af80f3fccb20abd1af8363d7b4e003e93b97d3f000080bfd0322d3d43caf83e78b9d53cc7503f3e80b9d5bc5a25d5be53ee4e3f5a25d53ef988093e97dccbbe1e4d683f000080bf1b98273eba70ee3e78b9d53c9c15323e40c057bc632bcfbe4b91053fe543403ff6728d3e3f9136bf17ef243f000080bfd706343ea683f03ecbcc4c3d982a333e60e2dabbd7f800bd13ab103fcf0c533f60ca6f3ec3354cbff0440e3f000080bf398d3a3e9204e53e20c0573c9c15323e80b9d5bceb9f41bf0a29043fb5b5cd3e215b403ea575d5beb8aa633f000080bfa11c273e8495f63e23e7193c0ad7233e5cb0d0bc0ddd4dbfcf87753e043e0b3f7babc43ef336fabe0989483f000080bffc34273ef888fa3ef376b43b0ad7233e07d723bd4ba56fbf61f4783eb81c823e1a99103e1acccdbe009b673f000080bf49b0183e934cfc3e59562f3b0ad7233ececc4cbd694877bf6451843e47474c3c5cf506bd84c22ebe6d1a7c3f000080bf80b10e3e8896fd3e74562f3b0ad7233e989919beb03e77bf2f4c843ecb2eb0bc32bf0c3dbccc563e5a267a3f000080bfb0f62a3d9a02fd3ea9ec933b0ad7233ec73f20be7a896ebfb1467f3e6f1a87be833108be2042e23ee91b633f000080bfb000113d2319fc3e33d2913bcddf213eccdf21bea38c6ebf5df9833eebc782be4a5102beada7da3e4d2d653f000080bf045f0a3da46afc3edb078d3b0a7d1f3e0ad723be78896ebf701a873ec5467fbe45b1fdbd1e2bd43e2bd1663f000080bf1859023de3d5fc3e77562f3b9999193e0ad723be0b3f77bf0d10ae3c574c84be4c7f67bee17ad63ec622613f000080bf507d013de87ffe3e60e2da3b9899193e992a33be9c8053bfd0b20a3d8af80fbfc16ef8be8ad7ed3e5ca43d3f000080bf604c8b3c4982fc3e78b9d53c2bc0573c9c1532be9ff1ccbe033142bf0ba003bfe7e4a7be838acfbe4c735a3f000080bf03034e3ee8c6d83ecbcc4c3d4fe2da3b992a33beb2b20abd9d8053bf87f80fbfba676abe2a950abf831d4f3f000080bf625f4c3e1084e33ecbcc4c3d6b562f3b0ad723be7b29e0bc432d77bfc08584be111e53be95dc7dbec453723f000080bfde755b3e12efe43e54b0d03c2de7193c0ad723bea39706bf179650bf81347abe2c4937be3c0b33be45db773f000080bf8a0e5c3e91e5d93e21e7193c57b0d03c0ad723befd4f48bf4a5413bfb87973bef13e2cbe536d30beca77783f000080bf8a0e5c3eea85ce3e20c0573c7db9d53c9d1532bee34340bf642bcfbe4f9105bf308ed2be13c1a9befe5d593f000080bf01034e3e6ea3cf3e78b9d53c7bb9d53cc9503fbe5125d5be5125d5be57ee4ebf818212bf7b2212bf7bb7163f000080bf6bab403e2e33d43eeb76b43b0ad7233d0ad723be888b6ebf1ca785beca1881beb2684fbe544c4fbe4e47753f000080bf52b35b3e6101c83e40e2da3bcecc4c3d992a33becf0c53bfb1f800bd13ab10bfd97c0abf3ebc7fbe86984d3f000080bf635f4c3e8ce0c43e54562f3bcecc4c3d0ad723be694877bf31474cbc595184beb20c7fbe5b0367bea01c713f000080bfde755b3e8776c33e60e2da3b9899193e992a33be9c8053bfd0b20a3d8af80fbf2b320dbf003181be57894b3f000080bf0306493e1873a13e77562f3b9999193e0ad723be0b3f77bf0d10ae3c574c84be4dc482bee55c7fbe78226f3f000080bf7d1c583e1209a03e2bc057bc9c15323e80b9d5bc4b723f3f076c063f82fdcf3eca56e73c44f222bf0150453f000080bf29ac9b3e6c1a673f2de719bc0ad7233e5cb0d0bcf94f483fc879733e4c54133fd7d35abe9bfb43bfd1591b3f000080bf7b1c9e3e1fc4653ffd76b4bb0ad7233e07d723bd478c6e3fc6fb813e0bc5843e7ca7dfbc01db29bff1673f3f000080bf6e4e973e2c6c643f66562fbb0ad7233ececc4cbdfd3c773f454b843eb021ba3c5865313e792e35bfcd552f3f000080bf1898923e9185633f4fe2dabb982a333ecfcc4cbd9d80533f87f80f3fb1b20a3d84f9b83e782f13bfa9ee3b3f000080bf2f3d903eca0e653f4fe2dabb982a333e989919beb628533f3e80103fd94e03bd0771fa3e111e2fbfd3860a3f000080bfe5244c3e56ac573f66562fbb0ad7233e999919beda4b773f3953843ea3e8dfbb0de0623ef95c50bfaf7d093f000080bfb8da503e1d23563f9e7289bb0ad7233ed4171fbe7c896e3fb9467f3e5a1a87bef412b33eb6a84fbf4af9ef3e000080bfb1dc4c3e342f553f2bc057bc9c15323e9d1532be8729403f722fef3edf39efbe2662233f8e1532bf88daa83e000080bf83ae3a3e6651533f24678bbbcde5223ef83220be7d896e3f95467f3e601a87beeb12b33eada84fbf6df9ef3e000080bf0c594c3eebe5543f6fe889bbdb6c213edb6c21be458c6e3f2acb843e91f581be75a2b43ef3b04fbf78b0ee3e000080bfc3e84b3eb289543f606284bbca881e3e0ad723be7c896e3f681a873e97467fbe1c4fb53e28d14fbfecbced3e000080bfa8034b3e82d7533f60562fbb9999193e0ad723be793f773f5065ab3c904c84be29e32f3e33574cbf02cf133f000080bf1e814c3ee55b533f4fe2dabb9899193e992a33be9d80533fa9b20a3d87f80fbf120aba3e627d4bbf93ccf83e000080bf8c48413e9fbc503f4fe2dabbcecc4c3d992a33bed10c533fd9f800bd10ab10bfa60faf3e319944bf13a60a3f000080bf001e6a3ee056423f6b562fbbcccc4c3d0ad723be6b48773fd7474cbc585184be88ca2b3e21f03abfa38b293f000080bf9356753e26f6443f0677b4bb05d7233d0ad723be858b6e3f24a785bed01881be005bb73bf62f2fbfe9a93a3f000080bfa4697a3e8815433f2bc057bc7bb9d53c9c1532bee443403f682bcfbe499105bf75d89c3d3f433bbfc3722d3f000080bfef0a773e16093e3f2de719bc54b0d03c0ad723befa4f483f4a5413bfca7973be60a130bee83511bfc0274e3f000080bf1ada803e6a64403f7db9d5bc2bc0573c9c1532be99f1cc3e023142bf0fa003bf569745be48461ebf250d433f000080bfa46b803ea52d3a3f7bb9d5bc7db9d53cc9503fbe5525d53e5325d5be54ee4ebfbd44173e5fa358bf790c033f000080bfffaa703e264f3a3f57b0d0bc2de7193c0ad723bea397063f179650bf8f347abe5537a1bec310e8be7f7b553f000080bf03f3863e79973b3fcecc4cbd60562f3b0ad723be6c29e03c432d77bfc18584be150aeebe3a4f77bee90d5a3f000080bfce9c8c3e8dd5363fcecc4cbd4fe2da3b992a33beb8b20a3d9c8053bf88f80fbfe551f0be3b8b02bfd98a383f000080bfd67b853e4c68353f999919be4fe2da3b992a33beb2b20abd9c8053bf88f80fbfab530abfed9eeabe53aa343f000080bf84fb963eeff3253f999919be6b562f3b0ad723be4462a8bcf63f77bfd24c84bef6fd02bf2ef658beb027553f000080bf7b1c9e3e2f61273f4fe2dabbcecc4c3d992a33bed10c533fd9f800bd10ab10bf6ab32ebdf0fd7d3f1ca6f0bd000080bfbf63363f87d7813e2bc057bc7bb9d53c9c1532bee443403f682bcfbe499105bfb3ce343ec86f623fd314ddbe000080bf2169303f3f16853e7bb9d5bc7db9d53cc9503fbe5525d53e5325d5be54ee4ebf0135b83b28e3633fc93fe9be000080bf2169303f828c8b3e9711cdbccecc4c3db9f545be064afd3ee94138bd692e5ebf621025bdec137f3f2dd098bd000080bfbf63363f3b058b3e9911cdbc9899193eb9f545be064afd3ee641383d6a2e5ebf8a10253dec137f3f34d0983d000080bf29654f3f3b058b3e4fe2dabb9899193e992a33be9d80533fa9b20a3d87f80fbff0a4253d34f77d3fcd00f43d000080bf29654f3f87d7813e2bc057bc9c15323e9d1532be8729403f722fef3edf39efbe16471cbeb5854f3f7eb8103f000080bfc75f553f4016853e7db9d5bc9c15323ec9503fbe5325d53e5525d53e54ee4ebf0353863c48ac623ff1cded3e000080bfc75f553f828c8b3e7cb9d5bcc7503f3e9c1532be5c25d53e53ee4e3f5425d5be3cfaf5bd7eb3003f59265b3f000080bfe89a583f828c8b3ececc4cbdb9f5453e992a33befe41383d672e5e3f0e4afdbea4a349bcf1c5fd3ebc515e3f000080bf443a5a3fbe81973ececc4cbd9999193ecbcc4cbea297583da797583d7e487fbf34558b3baea27f3f97d0593d000080bf29654f3fbe81973ecccc4cbdcecc4c3dcbcc4cbea497583da09758bd7e487fbfda548bbbaea27f3f93d059bd000080bfbf63363fbe81973ececc4cbd982a333eb9f545bef441383d064afd3e6a2e5ebf0000000035685e3f308bfd3e000080bf6aa3553fbe81973e989919be982a333eb9f545bef04138bd064afd3e692e5ebf86127e3b496d5e3f5d77fd3e000080bf6aa3553f9384c93e989919beb9f5453e992a33befa4138bd672e5e3f0e4afdbea0a3493cf1c5fd3ebc515e3f000080bf443a5a3f9384c93e999919be9999193ecbcc4cbea39758bda497583d7e487fbf04548bbbaea27f3f96d0593d000080bf29654f3f9384c93e9c1532be9c15323ec9503fbe5a25d5be5a25d53e53ee4ebf61a6923ddab9663f19c6da3e000080bfc65f553fce79d53ececc4cbd9911cd3cb9f545bef041383d064afdbe6a2e5ebf0000000035685e3f2e8bfdbe000080bf7d25303fbe81973e7db9d5bc2bc0573c9c1532be99f1cc3e023142bf0fa003bfc4d58f3d62b6153f07e14ebf000080bf002e2d3f828c8b3ececc4cbd4fe2da3b992a33beb8b20a3d9c8053bf88f80fbf8fabd23bb918103f869653bf000080bfa38e2b3fbe81973e999919be4fe2da3b992a33beb2b20abd9c8053bf88f80fbf7fabd2bbb718103f869653bf000080bfa38e2b3f9384c93e999919be9711cd3cb9f545beeb4138bd064afdbe692e5ebf0000000034685e3f328bfdbe000080bf7d25303f9384c93e999919becccc4c3dcbcc4cbea29758bda39758bd7e487fbf83558b3baea27f3f96d059bd000080bfbe63363f9384c93e9d1532be7bb9d53cc9503fbe5025d5be5125d5be57ee4ebfea32b8bb28e3633fc93fe9be000080bf2169303fce79d53e9d1532be2bc0573c9c1532be7b20eabec83043bfc35feabe23a1cebd7c4e0e3fa33a53bf000080bfff2d2d3fce79d53e982a33be9899193eb9f545be064afdbefb41383d692e5ebf0f1025bdec137f3f1fd0983d000080bf29654f3f1401d63e992a33bececc4c3db9f545be064afdbed84138bd6a2e5ebf7a10253dec137f3f27d098bd000080bfbe63363f1501d63eca503fbe7db9d53c9d1532be58ee4ebf4e25d5be4e25d5beecb469be5a965f3f3448dcbe000080bf2169303f11f0db3eb9f545bececc4c3d992a33be692e5ebfd04138bd084afdbe7c6dc73cdea77d3fddfe07be000080bfbe63363fca2edf3eb9f545be9899193e992a33be692e5ebf0342383d0a4afdbe976dc7bcdea77d3ffcfe073e000080bf29654f3fc92edf3ec7503fbe9c15323e9c1532be51ee4ebf5f25d53e5625d5be18b5693e5a965f3f2948dc3e000080bfc65f553f10f0db3e4fe2dabb982a333e989919beb628533f3e80103fd94e03bdeaaebcbd84b4423e7a387a3f000080bf1257143f23fbfd3e2bc057bc9c15323e9d1532be8729403f722fef3edf39efbe843be93d27e81a3fa8b7493f000080bfb35f0e3f739d003f7cb9d5bcc7503f3e9c1532be5c25d53e53ee4e3f5425d5be4ad068bd09d0f53e2c18603f000080bfb4840e3fa5af023f9711cdbcb9f5453e989919be104afd3e672e5e3ff74138bdb9c2cebdbad4de3d142a7d3f000080bfa08b143fa8ee013f9911cdbcb9f5453ecfcc4cbd0e4afd3e672e5e3ff441383d4cc2ce3d78d4debd152a7d3f000080bf02892d3fa7ee013f4fe2dabb982a333ecfcc4cbd9d80533f87f80f3fb1b20a3d79d6b83d570744be6b337a3f000080bf74542d3f23fbfd3e2bc057bc9c15323e80b9d5bc4b723f3f076c063f82fdcf3eec1d48bd321411bf088d523f000080bf6450333f729d003f7db9d5bcc7503f3e80b9d5bc5825d53e51ee4e3f5a25d53eb3cf683d09d0f5be2c18603f000080bf6475333fa4af023fcecc4cbdcbcc4c3ecbcc4cbda397583d7e487f3fa997583d8d184c3d086b63bd61497f3f000080bf02a92d3fcf59073fcecc4cbdb9f5453ea011cdbcf841383d672e5e3f124afd3e5a71a23d9455febe5f405d3f000080bfd4d7333f47de073fcccc4cbdcbcc4c3e989919bea797583d7e487f3fa39758bdb5194cbd106b633d5f497f3f000080bfa0ab143fcf59073fcecc4cbdb9f5453e992a33befe41383d672e5e3f0e4afdbe7c72a2bd9155fe3e5c405d3f000080bff35f0e3f48de073f989919beb9f5453e992a33befa4138bd672e5e3f0e4afdbe56d606be40b2f83eb4375d3f000080bf53a60e3fc3a41f3f999919becbcc4c3ecbcc4cbda79758bd7e487f3fab97583d76f8173dcbb550bdb07d7f3f000080bf63ef2d3f4b201f3f999919beb9f5453ea011cdbcf74138bd672e5e3f124afd3e20d6063e43b2f8beb5375d3f000080bf341e343fc3a41f3f999919becbcc4c3e999919bea89758bd7e487f3fa79758bdadf817bdc5b5503dae7d7f3f000080bf00f2143f4b201f3f9c1532bec7503f3e9c1532be5f25d5be51ee4e3f5a25d5be8e0b00be3323ce3e5d23683f000080bfbcec0e3fc1d4253f989919be982a333eb9f545bef04138bd064afd3e692e5ebfdf3573be60ac563f7808fb3e000080bf92e8093fbb10213f9c1532be9c15323ec9503fbe5a25d5be5a25d53e53ee4ebf4155a5be3d6c433f82380f3f000080bf38960b3f00d5263fc7503fbe9c15323e9c1532be51ee4ebf5f25d53e5625d5be69b062be036ee13e2dc15e3f000080bfecd90e3f6fe7293f982a33beb9f5453e989919be0e4afdbe672e5e3f054238bd00000000f1ea533d3aa87f3f000080bf25f5143f6394253f992a33beb9f5453ecfcc4cbd104afdbe672e5e3fe441383d00000000feea53bd3aa87f3f000080bf88f22d3f6394253f9d1532bec7503f3e80b9d5bc5a25d5be53ee4e3f5a25d53e360b003e4723cebe5b23683f000080bf6cdd333fc1d4253fb9f545be982a333ecfcc4cbd692e5ebf0a4afd3ed241383dfdc4a6bc0ded00becce87d3f000080bfced72d3f685d2b3f9d1532be9c15323e40c057bc787debbedd46eb3e0382423fe8f1963e3c653abf4f6b1e3f000080bf20fc363fffd4263f999919be982a333e60e2dabb4ed907bd5532103f125b533fb329683ea7df4cbf171b0e3f000080bfad8c383fba10213fca503fbe9c15323e80b9d5bc57ee4ebf5125d53e5525d53e40b0623e276ee1be27c15e3f000080bf9cca333f6fe7293fb9f545be982a333e989919be692e5ebf0d4afd3e044238bd6ac4a63c04ed003ecce87d3f000080bf6cda143f685d2b3fcbcc4cbe9999193ecbcc4cbd7e487fbf9b97583d9e97583d72bf273db06a52be4c517a3f000080bf94a62d3f1be32e3fb9f545be9899193ea011cdbc692e5ebfdd41383d0b4afd3e4089d93e1ec3e5be0044493f000080bf20df333f8a4c2d3fcbcc4cbe9999193e989919be7e487fbfa697583da39758bd78bf27bd9d6a523e4c517a3f000080bf32a9143f1be32e3fb9f545be9899193e992a33be692e5ebf0342383d0a4afdbe4089d9be14c3e53e0244493f000080bf3e670e3f8a4c2d3f0ad723befd76b43b06d723bdc3fb81be478c6ebf0cc5843ef7a9253ea2c6643e7511763f000080bffc96243f82d1073e0ad723be2de7193c54b0d0bcbc7973befb4f48bf4a54133fefce803e8fcd053fbf87503f000080bfbc36283fe6be053e9c1532be2bc0573c78b9d5bc026c06bf4d723fbf81fdcf3ed4947a3ee924a63e28e7693f000080bfee4a283fca80f23d0ad723be66562f3bcbcc4cbd414b84befd3c77bfb321ba3c3d09e53cc059833cf5dd7f3f000080bf4518223f385b093e982a33be4fe2da3bcbcc4cbd87f80fbf9d8053bfb8b20a3d000000003be6273deac87f3f000080bf3e58223f40f8f73d992a33be4fe2da3b989919be2dea0fbf978953bf64e40bbdf7a1a4bd811a5d3cec257f3f000080bf1e65093f788dee3d0ad723be60562f3b989919be9b5384be984c77bf0e7c9ebb583802be3c0dee3c05d07d3f000080bf2425093fd3a5043e0ad723be0f48753b89751dbe9a467fbe7f896ebf551a87be553d86be09194abe9cd2713f000080bf6e34083f97b6033e73a520be555c783b72a520be82e272be8fd471bfd41a68bea15e71be297a2ebed6ee743f000080bf4d60073f51ba053e8b751dbe2048753b0ad723be59a682be21686ebf2a2185be61b081bea8d347be728f723f000080bfca8b063fe0cd073e9d1532be2bc0573c9c1532be7b20eabec83043bfc35feabe2607b0beab73a5be4eb6613f000080bf6669033f2095e43d999919be6b562f3b0ad723be4462a8bcf63f77bfd24c84beff6980bea6177bbe39bc6f3f000080bfae7b063f83360b3e999919be4fe2da3b992a33beb2b20abd9c8053bf88f80fbf517f90becc2a08bf70634c3f000080bfb5bf023ff1aa073eb9f545be9911cd3c989919be692e5ebf0a4afdbed04138bdf60c3ebd7a7c1abc7fb67f3f000080bf90b3093f60b0ba3dc7503fbe7bb9d53c78b9d5bc53ee4ebf5725d5be5a25d53ede06993e045aa33e9c3d663f000080bf2882283f58fdcd3d9c1532be7db9d53c20c057bc11a003bf98f1ccbe0231423f23e5063f94e70c3f62c9253f000080bf36842b3f9463e13db9f545be9711cd3ccbcc4cbd692e5ebf0d4afdbefc41383d9d44f7ba882fc03db0de7e3f000080bfb1a6223f2c1bc43dca503fbe7db9d53c9d1532be58ee4ebf4e25d5be4e25d5be41ccafbe5ed776beea61683f000080bfa0a0033fac11c03d9d1532be7bb9d53cc9503fbe5025d5be5125d5be57ee4ebfd4fa19bfbe640abfbb93163f000080bf1d30003fec08d13dcbcc4cbececc4c3d999919be7e487fbf999758bd9b9758bdd2134dbd1eaf59bd14517f3f000080bf1cd0093f56de8d3db9f545bececc4c3d992a33be692e5ebfd04138bd084afdbe4c17f5be5ddf42be866b5b3f000080bfdf78033fceea943dcbcc4cbecccc4c3dcbcc4cbd7e487fbfa79758bda697583d4d65313d231e2c3e371d7c3f000080bf3ec3223f2049973db9f545bececc4c3d9811cdbc672e5ebfec4138bd0e4afd3ec1c5eb3e60ea993e54d0553f000080bf61e1283f6609a33db9f545be9899193ea011cdbc692e5ebfdd41383d0b4afd3ebf9ff73e71889b3eee23523f000080bf60e1283fa058293ccbcc4cbe9999193ecbcc4cbd7e487fbf9b97583d9e97583db0ba7e3d4058463e8ba57a3f000080bf3ec3223fc0ac963bcbcc4cbe9999193e989919be7e487fbfa697583da39758bd611b67bd4d208bbdf7ff7e3f000080bf1dd0093f00000000b9f545be9899193e992a33be692e5ebf0342383d0a4afdbe16e9fcbef3c83bbe8394593f000080bfdf78033f808f613bb9f545bececc4c3d9811cdbc672e5ebfec4138bd0e4afd3e3299cf3e8eb523bf2a37273f000080bf5afd6e3f9405d93ec7503fbe7bb9d53c78b9d5bc53ee4ebf5725d5be5a25d53e9a2e153fb9992abfb420ee3e000080bf5e5d743fca2edf3e9c1532be7db9d53c20c057bc11a003bf98f1ccbe0231423f27bd293f151c3fbf2149633d000080bf3ca6763f0d9dda3e982a33bececc4c3d40e2dabb89f80fbf9fb20abd9c80533f0c791d3fc7512fbf9603c83e000080bf1a3c723f1688d23e992a33be9899193e60e2dabb8af80fbfb1b20a3d9c80533f604f213f332221bf58d1e83e000080bf9d8d603f1e2baf3eb9f545be9899193ea011cdbc692e5ebfdd41383d0b4afd3e9a4bc83e15460dbfcf8a3c3f000080bfde4e5d3f9ca8b53eca503fbe9c15323e80b9d5bc57ee4ebf5125d53e5525d53e0728803ecf44cbbed60d623f000080bf443a5a3f96e8aa3e9d1532be9c15323e40c057bc787debbedd46eb3e0382423fb087093fb08b09bff570263f000080bf22835c3fd956a63e0ad723be9999193e6d562fbb6d4c84be5a5fad3c273f773fa885333fd2fa2ebf0a754f3e000080bf1a33633f24e0a93e0ad723bececc4c3d59562fbbc78584be4329e0bc432d773f61d62f3f224135bf6400283e000080bf96e1743f1c3dcd3e0ad723bec33d1f3e6eca8abb8dbd84be21bb823e2b736e3f959b283fd69c28bf994dba3e000080bfbc39623f69eda73e0ad723be57b0d03c23e719bc86347abea39706bf1796503f86f2323f73882dbf383e69be000080bfb837793f62e9d53e0ad723be2de7193c54b0d0bcbc7973befb4f48bf4a54133f8790293f3f6110bf787efcbe000080bfa20f7c3f3599db3e9c1532be2bc0573c78b9d5bc026c06bf4d723fbf81fdcf3ea34e1e3f2ec829bf40dcd7be000080bf1bef783fca2edf3e999919be982a333e60e2dabb4ed907bd5532103f125b533fcc5c273f59d31cbf0c6fe33e000080bf9d8d603f93829d3e235b21be235b213e37b088bbfeed6cbe7587723e5e8f713f43cf2a3f76cf2abffa83a93e000080bf0e4a623fd856a63e27731ebe0ad7233e639e83bb661a87bebe467f3e7a896e3f61ae283fd6ad28bfc9cbb93e000080bfb85c623f507aa43e999919be0ad7233e74562fbb0a45c6bb6e53843e2a4c773f0bd92e3f975b34bf2f65453e000080bf1a33633f8ccda23ececc4cbd982a333e60e2dabbb2b20a3d8af80f3f9a80533fc0512f3f10791dbf9d03c83e000080bf1a3c723f364b743e999919beb9f5453ea011cdbcf74138bd672e5e3f124afd3e3471153f6f0fc2beccd0373f000080bfde4e5d3f1505973ececc4cbdb9f5453ea011cdbcf841383d672e5e3f124afd3e90b5233f3399cfbe2837273f000080bf5afd6e3f3a50673ecccc4cbd0ad7233e74562fbbbf21ba3c4f4b843efb3c773f6855353fa5952fbf82d72a3e000080bf96e1743f28e17e3e7db9d5bcc7503f3e80b9d5bc5825d53e51ee4e3f5a25d53eb3be403f002b10bf0a5eae3e000080bf5e5d743fcffd5a3e7cb9d5bc9c15323e40c057bc7efdcf3e046c063f4d723f3f8e7c3f3fa34229bf9a3c6d3d000080bf3ca6763f4821643e07d723bd0ad7233e0e77b4bb18c5843ecffb813e448c6e3f511e353fb2ea34bf8a6c8ebb000080bf3ca6763f90ce773e2bc057bc9c15323e80b9d5bc4b723f3f076c063f82fdcf3e43b7263fc5f732bff02897be000080bf1bef783fcefd5a3e54b0d0bc0ad7233e3ae719bc4754133fd679733efd4f483f5289263fc78136bfa80e86be000080bfb837793f9e886d3e2de719bc0ad7233e5cb0d0bcf94f483fc879733e4c54133f3c61103f999029bf4f7efcbe000080bfa20f7c3ff728623ececc4cbdb9f545bea011cdbcf341383d692e5ebf064afd3eb3aa173f6f03d83e31b12f3f000080bf6e916f3ffe542a3f7cb9d5bcc9503fbe80b9d5bc5325d53e54ee4ebf5325d53eada0203f6d36163fb509033f000080bfdac2743fd4b52d3f7db9d5bc9d1532be40c057bc642bcf3e4d9105bfe343403f5e37363fc6ff313f8be3cb3d000080bfba2b773fd28e2b3fcecc4cbd992a33be60e2dabbeaf8003d13ab10bfcf0c533fc711243f55f4243f079cd53e000080bfa2fd723f5846273f989919be992a33be40e2dabbbc2a0ebd8cc10fbfb3a3533ffbd7163ffb19283f2408f13e000080bf3855623f28a0143f989919beb9f545be9811cdbcd94138bd6a2e5ebf064afd3e5ce8023f8191cf3ebdfa413f000080bf03e95e3fceae173f9c1532bec9503fbe78b9d5bc5325d5be54ee4ebf5525d53e38c6b73e82948c3e455e643f000080bf24235c3f9224123f9c1532be9c1532be20c057bc0dc2e9bebc7ee9be6890433f99db013ffe6c123fc905253f000080bf048c5e3f90fd0f3f0ad723bd0ad723be0677b4bb2ca7853ed91881be838b6e3fb3742a3f8ff53e3f24e67a3c000080bfa472773f80a5263fcecc4cbd0ad723be6d562fbb18484c3c5a5184be6948773f876c2a3f4b13393f75433d3e000080bf32c8753f15c8243f57b0d0bc0ad723be38e719bc4754133fcb7973befd4f483fbd211e3f7fe0403fa4c866be000080bf0fde793ff75a293f2bc057bc9c1532be80b9d5bc0231423f0ca003bfa1f1cc3e8ed2253fb369293fc244c1be000080bfbc52793fb2f72d3f2de719bc0ad723be5cb0d0bc1696503f8d347abea697063f4cf2033fd172383f2a87edbe000080bfd48b7c3fb65a2c3f999919be0ad723be5d562fbb2ef292bba35384beb24c773f906d243fb05a3d3ff2b14d3e000080bfc81f653fe421123f6c2c1dbe0ad723bede1a70bb651a87be98467fbe7d896e3fbffb1e3fa8fb313f1648b93e000080bff68a643f487b113ff85820bef75820be9ed46dbb791864be538972be2817723ff446213f198f343f3b6ca63e000080bf9ca9643fdc55103f0ad723be2e811cbe52fb63bb316485be1f9782beda606e3fe4d31e3f8ada313f4c4fba3e000080bf56cb643ffe120f3f0ad723be989919be59562fbb124d84be8fb3a5bc6140773f3b0c2a3fafe2383f0a78453e000080bfc252653f089a0e3f982a33be989919be40e2dabb89f80fbf9fb20abd9c80533f290d1a3fcf222b3f70c1df3e000080bf7ed4623f78cf0b3f992a33becfcc4cbd60e2dabb8af80fbfb3b20a3d9c80533f4bb2143fae303a3fb82cbb3e000080bfae7a753f1a4ef63e0ad723bececc4cbd6d562fbbc98584beb529e03c432d773fc360253f23803f3fd39f1b3e000080bff2f8773f3ae3fb3eb9f545be989919be9811cdbc692e5ebfeb4138bd0d4afd3e3252c03eaa9d173fde7c363f000080bfd8c55f3f4363083fc7503fbe9d1532be78b9d5bc53ee4ebf5725d5be5a25d53e4e2e663e58e0de3e3a2c5f3f000080bf02655c3fb0940d3fb9f545becfcc4cbda011cdbc692e5ebfdd41383d0d4afd3ee915c63e77942f3fabca1d3f000080bf086c723fb075ef3eca503fbe80b9d5bc80b9d5bc57ee4ebf5125d53e5325d53e1286133f5249343f0251d43e000080bf45f6773ff2e9e93e9d1532be80b9d5bc40c057bc0da003bf9af1cc3e0431423ff0b6363fb8ac303fa3f0f43d000080bf471d7a3fb2bbee3e0ad723be5cb0d0bc36e719bc96347abea397063f1696503f438e3c3fd9ab253f056d49be000080bfd48b7c3f81b7f33e6b562fbb0ad723bececc4cbd432d773fc08584be8329e03cc825df3bb4c9a3bd8f2c7fbf000080bfd2dcbb3e839ebb3e2de719bc0ad723be5cb0d0bc1696503f8d347abea697063f1fede93eae4393be407c57bf000080bfe1bbaf3e1601be3e2bc057bc9c1532be80b9d5bc0231423f0ca003bfa1f1cc3ed7b1963e702e8ebebd1a6abf000080bfd0dbaf3e443fc43e4fe2dabb992a33becfcc4cbd9d80533f87f80fbfb5b20a3ddbc75d3cfcf224bdd4c47fbf000080bf59aabb3ee750c23e7cb9d5bcc9503fbe80b9d5bc5325d53e54ee4ebf5325d53e67a98f3e7881a4be408a67bf000080bfd0dbaf3ebc62cd3e7db9d5bc9d1532be40c057bc642bcf3e4d9105bfe343403f3b30043fc8260cbfeb9428bf000080bf2fa3a93ee9d4c83e4fe2dabb992a33be989919be9c80533f88f80fbfaab20abd3fce60bc04d7233d5fc57fbf000080bf9c9ced3edf4ec23e60562fbb0ad723be989919beb23e773f254c84be7b2eb0bc00000000ee7da23d65317fbf000080bf15cfed3e7b9cbb3e2bc057bc9d1532be9c1532be3d22423f7518ecbeb7e7ebbe426eb3be687c9d3e377762bf000080bf9fb0f93e443cc43e93ec93bb0ad723bec73f20beea776e3f129284bea5c482beb67151be12b5543e75e174bf000080bfce15f13e5743bc3e9911cdbcb9f545be989919be064afd3e6a2e5ebfe64138bd1c1855bda6ffb43c3b977fbf000080bf9c9ced3ed749cf3e9711cdbcb9f545becfcc4cbd064afd3e6a2e5ebfe841383d4eed533d8d55b6bcf6977fbf000080bf59aabb3edf4bcf3e4fe2dabb989919be992a33be9644533fefe305bd195510bf23fe09bfff20813e41bb4dbf000080bfef87fa3e2581b93e1cd291bbcddf21beccdf21be57bb713f82106cbe7da070be4cee44be2fa9453e395076bf000080bf43e9f13e3b90bb3ec3078dbb097d1fbe0ad723be7f896e3f501a87bea7467fbe2f874cbe74964d3e058575bf000080bfc6e8f23ea6b0ba3e6b562fbb999919be0ad723bea54b773f9a97efbb125384be380c80be9496683ea7f270bf000080bfc0fbf23ece15b83e60562fbbcecc4cbd0ad723befd3c773fa121ba3c3a4b84be1bd281be6cd8953e2e076cbf000080bf24c8f43e14d5943e4fe2dabbcfcc4cbd992a33be9c80533fa9b20a3d88f80fbfcfbb0bbfb144973e42b948bf000080bf5254fc3e6c40963e2bc057bc80b9d5bc9d1532be4b723f3f82fdcf3e066c06bf61a622bfaa91553eaf573ebf000080bf2e59fc3ecf1f903ef576b4bb0ad723bd0ad723be478c6e3f0dc5843ebbfb81bea49caabe5b2fab3ed9ae61bf000080bf3803f53ec74f923e2be719bc5cb0d0bc0ad723bef94f483f4c54133fc17973be81e1e7bef420873edc025abf000080bffc57f53ed2918e3ecccc4cbdcbcc4cbecbcc4cbda397583d7e487fbfa397583dd79ee33dc4793fbde0217ebf000080bf8afebb3e0182da3ececc4cbdb9f545bea011cdbcf341383d692e5ebf064afd3e18997c3ee8c0f0be76ed58bf000080bfeca4af3eaf27d83e989919beb9f545be9811cdbcd94138bd6a2e5ebf064afd3e9b227b3eedb2fabe3c3356bf000080bf5071b13ecea0fb3e999919becbcc4cbecbcc4cbda39758bd7e487fbfa397583d8dbf063e718173bd2e517dbf000080bfeecabd3e22fbfd3ececc4cbdcbcc4cbe999919be9e97583d7e487fbfa39758bd526ae4bdd3613f3d181f7ebf000080bfcef0ed3efa7fda3e999919becbcc4cbe989919bea39758bd7e487fbf9e9758bd7b2e07bec295733d694d7dbf000080bf32bdef3e1af9fd3ececc4cbdb9f545be992a33bef041383d6a2e5ebf064afdbefffa7cbecdb8f03e94e858bf000080bfee87fa3ea324d83e999919beb9f545be992a33beeb4138bd6a2e5ebf064afdbe9a8c7bbe59aefa3ece2c56bf000080bf5254fc3ec49dfb3e7db9d5bcc9503fbe9c1532be5325d53e57ee4ebf5025d5be09cc8fbeb46da43e648867bf000080bf9eb0f93eba5fcd3e7bb9d5bc9c1532bec9503fbe5a25d53e4e25d5be54ee4ebfd90012bf0ea4123f73b716bf000080bf1d30003f60d1c83e4fe2dabb989919be992a33be9644533fefe305bd195510bfce262abda0fa7d3f2655f2bd000080bfb8512d3deff3253f2bc057bc9d1532be9c1532be3d22423f7518ecbeb7e7ebbede2f753e8fbd5a3fde0fecbe000080bfb04f9b3c4c93273f7bb9d5bc9c1532bec9503fbe5a25d53e4e25d5be54ee4ebfbf2bb83b24e3633fd73fe9be000080bfb84f9b3c6dce2a3f9711cdbc989919beb9f545be064afd3ee94138bd692e5ebf171125bdeb137f3f5ed098bd000080bfb8512d3dc98a2a3f9911cdbccfcc4cbdb9f545be044afd3ee541383d6a2e5ebf8110253dec137f3f31d0983d000080bf175a0f3eca8a2a3f4fe2dabbcfcc4cbd992a33be9c80533fa9b20a3d88f80fbf50a5253d34f77d3f1101f43d000080bf175a0f3eeff3253f2bc057bc80b9d5bc9d1532be4b723f3f82fdcf3e066c06bff598b2bdcb1c583f4466073f000080bf8e44273e4c93273f7db9d5bc80b9d5bcc9503fbe4f25d53e5625d53e55ee4ebfb651863c4bac623fe8cded3e000080bf8e44273e6dce2a3f7cb9d5bc40c057bc9c1532be9df1cc3e0331423f0ca003bfa2d58fbd5eb6153f0ae14e3f000080bf1231343e6dce2a3fcecc4cbd60e2dabb992a33bebab20a3d9a80533f8af80fbf8fabd2bbbc18103f8596533f000080bf84ae3a3e0bc9303fcecc4cbdcbcc4cbdcbcc4cbe9e97583da797583d7e487fbf29558b3baea27f3f99d0593d000080bf185a0f3e0bc9303fcccc4cbd989919becbcc4cbea097583d9e9758bd7e487fbf425b8bbbaea27f3f9ad059bd000080bfb8512d3d0ac9303fcecc4cbda011cdbcb9f545bef041383d0d4afd3e692e5ebf0000000034685e3f348bfd3e000080bf1b53283e0bc9303f989919bea011cdbcb9f545beee4138bd0a4afd3e692e5ebf06f97d3b486d5e3f6377fd3e000080bf1a53283e75ca493f989919be60e2dabb992a33beb7b20abd9c80533f8bf80fbf8aabd23bba18103f8596533f000080bf84ae3a3e75ca493f999919becbcc4cbdcbcc4cbea39758bda797583d7e487fbfa65b8bbbaea27f3fa5d0593d000080bf175a0f3e76ca493f9c1532be80b9d5bcc9503fbe5825d5be5a25d53e51ee4ebf1ca6923dd8b9663f20c6da3e000080bf8e44273e13c54f3fcecc4cbd992a33beb9f545bef141383d064afdbe6a2e5ebf0000000034685e3f328bfdbe000080bf48db923c0bc9303f7db9d5bcc9503fbe9c1532be5325d53e57ee4ebf5025d5be6bfaf53d7ab3003f5a265bbf000080bf20aecf3b6dce2a3fcecc4cbdb9f545be992a33bef041383d6a2e5ebf064afdbe8ba3493cecc5fd3ebf515ebf000080bf000000000bc9303f999919beb9f545be992a33beeb4138bd6a2e5ebf064afdbe87a349bcebc5fd3ebd515ebf000080bf0000000075ca493f999919be992a33beb9f545bee94138bd064afdbe6a2e5ebf0000000034685e3f328bfdbe000080bf48db923c75ca493f999919be999919becbcc4cbe9f9758bda39758bd7e487fbf755b8b3baea27f3fa1d059bd000080bfb4512d3d76ca493f9d1532be9d1532bec9503fbe5025d5be5525d5be57ee4ebfe834b8bb28e3633fcb3fe9be000080bfa84f9b3c13c54f3f9d1532bec9503fbe9c1532be5625d5be58ee4ebf4a25d5be57faf5bd78b3003f5c265bbf000080bf20aecf3b13c54f3f982a33becfcc4cbdb9f545be064afdbefa41383d692e5ebfd50f25bdec137f3f0fd0983d000080bf175a0f3eb608503f992a33be989919beb9f545be064afdbed34138bd6a2e5ebf3210253dec137f3f10d098bd000080bfb4512d3db608503fca503fbe9c1532be9d1532be58ee4ebf4a25d5be5225d5beefb469be5b965f3f2f48dcbe000080bfb04f9b3c3400533fb9f545be989919be992a33be692e5ebfd04138bd0b4afdbed76dc73cdea77d3feffe07be000080bfb4512d3d919f543fb9f545becfcc4cbd992a33be692e5ebf0442383d0a4afdbeec6cc7bce0a77d3fd6fe073e000080bf175a0f3e909f543fc7503fbe80b9d5bc9c1532be51ee4ebf5f25d53e5525d5be2cb5693e5b965f3f1b48dc3e000080bf8e44273e3400533f54b0d0bc3ae719bc0ad723bea397063f1696503f9b347abe9ae73b3f582894be414a1d3f000080bf28625a3f0c78f13e2be719bc5cb0d0bc0ad723bef94f483f4c54133fc17973be8a791a3f22461bbf0f87043f000080bf24235c3f8aaced3e2bc057bc80b9d5bc9d1532be4b723f3f82fdcf3e066c06bf0b98283f6bc50dbf1b6f023f000080bffc11593ff2e9e93e7cb9d5bc40c057bc9c1532be9df1cc3e0331423f0ca003bf7aef5d3f44c906beb721f63e000080bf3aa9573f8af6ec3ecccc4cbd77562fbb0ad723be9629e03c432d773fca8584becd833b3fe598203e2198293f000080bfe199563fb2edf83ececc4cbd60e2dabb992a33bebab20a3d9a80533f8af80fbfefa3463f8874aa3e442a093f000080bfecc9533f56dbf33e999919be6d562fbb0ad723be6da6a8bce93f773fd54c84bed91c2e3f11d64f3efc55343f000080bfa679453f43f50c3f989919be60e2dabb992a33beb7b20abd9c80533f8bf80fbf8d5e1d3f69faeb3eaddb233f000080bfb2a9423f156c0a3f9c1532be40c057bc9c1532be6830eabe5427433f526feabebb17f53e151f253f8b7d183f000080bf6a583e3fe4dc0e3f989919bea011cdbcb9f545beee4138bd0a4afd3e692e5ebf65d5d93e26a84b3f60e1dc3e000080bfd5603e3f9af1073f9c1532be80b9d5bcc9503fbe5825d5be5a25d53e51ee4ebfe3828e3ee199673f4829a53e000080bf31543b3f331e0d3fd38d1dbe530077bb0ad723be91a882be7d686e3f771c85be895f243f9480ba3e87b02c3f000080bff3be443f72a50d3fc7503fbe80b9d5bc9c1532be51ee4ebf5f25d53e5525d5bea2955c3e4e015e3f94dbe53e000080bf31543b3fc199113f982a33be60e2dabb989919bef2ed0fbf2b87533fa7ae0bbd31331b3f9334e13eb69d293f000080bfb2a9423f7d15133fc1b120be1b0e7abbc1b120be95a672be7bdc713f61d567bebd12283ff0ada73efaf22d3f000080bf6fbe443f9db60e3f0ad723be410077bbd28d1dbebc467fbe7f896e3f431a87bec653243f29dcb93e00e82c3f000080bff4be443fa3c60f3f0ad723be74562fbb999919bea15384be8d4c773fbf4fa2bb8b8b333f1bc0433e1acc2f3f000080bfa679453f646d103f0ad723be6d562fbbcecc4cbd4b4b84befb3c773fb121ba3caff5343faf22313e9f942f3f000080bfe199563f42a0223fb9f545bea011cdbc989919be672e5ebf0e4afd3e004238bde048cd3e2548403ff544063f000080bfd6603e3ffef8163fcbcc4cbecbcc4cbd989919be7e487fbfa797583d9f9758bd4ce2df3ca1776a3fb10ecd3e000080bf70ae3b3f183f193fb9f545becfcc4cbd992a33be692e5ebf0442383d0a4afdbe4e3fb9bda805773f6b587c3e000080bfae8c383fdb99133fcbcc4cbecbcc4cbdcbcc4cbd7e487fbf9d97583d9e97583de31b943d03a55c3ff77c003f000080bfabce4c3ff7712b3fb9f545bea011cdbccfcc4cbd692e5ebf0f4afd3ed041383daf5ad93eb80e313ffa95153f000080bf10814f3fdd2b293f992a33be60e2dabbcfcc4cbd8bf80fbf9c80533f98b20a3dfdf71b3f42cec53e8747313f000080bfecc9533f5c48253f9d1532be40c057bc80b9d5bc026c06bf50723f3f80fdcf3ea5c3303faa34c33de08f373f000080bf3aa9573fb0c3293f0ad723be0677b4bb0ad723bdc7fb81be448c6e3f18c5843ef7293d3f0fe7623c43742c3f000080bf3623583f2e94243f0ad723be36e719bc5cb0d0bccc7973befb4f483f4954133f6584453fd6c554be43ed193f000080bf28625a3f9967273f0ad723be5cb0d0bc36e719bc96347abea397063f1696503fc3ea443f1826d0bef869fc3e000080bf24235c3f10162b3f9d1532be80b9d5bc40c057bc0da003bf9af1cc3e0431423f27ac413f10f551bea3f81e3f000080bffc11593ff2b82c3fca503fbe80b9d5bc80b9d5bc57ee4ebf5125d53e5325d53e6b7c153fac14f43ee236283f000080bf01a5543f8d802c3fb9f545becfcc4cbda011cdbc692e5ebfdd41383d0d4afd3e6aaaaf3e6d43463f0610083f000080bf253a523f1ae32e3f999919becbcc4cbecbcc4cbda39758bd7e487fbfa397583da6a07fbf68fb553d1af05abc000080bf000040325fd1763f989919beb9f545be9811cdbcd94138bd6a2e5ebf064afd3e07317ebf2c05bf3dd134963d000080bfe074973b8aff7c3f9c1532bec9503fbe78b9d5bc5325d5be54ee4ebf5525d53ea01861bf28ebf23ed2d42b3d000080bf77afd13c71e17c3f982a33beb9f545becbcc4cbd064afdbe6a2e5ebff641383d0d765ebf0245fd3e491151bc000080bf72dfb23cb1f8763f992a33beb9f545be989919be064afdbe692e5ebfdd4138bd28515ebf14c7fd3eba134ebc000080bf70dfb23c76fe5d3f999919becbcc4cbe989919bea39758bd7e487fbf9e9758bd46747fbf3e70603d5a3a11bd000080bf0000000023d75d3f9d1532bec9503fbe9c1532be5625d5be58ee4ebf4a25d5be080960bfe9f9f53e6e4d6cbd000080bf76afd13c68f5573f999919beb9f545be992a33beeb4138bd6a2e5ebf064afdbece8f7cbfbf75ee3d4a9eeabd000080bfd074973b628c573fb9f545be992a33be989919be692e5ebf0a4afdbed54138bd62c6fdbe82515e3f39614b3c000080bf8a47413d9afe5d3fc7503fbe9d1532be78b9d5bc53ee4ebf5725d5be5a25d53e9ff3f2bed315613f9d842cbd000080bf80f3313d8be17c3f9c1532be9c1532be20c057bc0dc2e9bebc7ee9be6890433fddfd34bf090c353f00000000000080bfb9760d3d0000803fb9f545be992a33becbcc4cbd692e5ebf0b4afdbefe41383d0746fdbeec755e3ffc4e4e3c000080bf8b47413dd6f8763fca503fbe9c1532be9d1532be58ee4ebf4a25d5be5225d5bef0f1f5beea0b603f18a46b3d000080bf8af3313d82f5573f9d1532be9d1532bec9503fbe5025d5be5525d5be57ee4ebf470135bf9f08353f00000000000080bfb7760d3d909f543fcbcc4cbe989919be999919be7e487fbf969758bd999758bda2eb5fbd4c7a7f3fff15073d000080bfd6738d3d86d75d3fb9f545be989919be992a33be692e5ebfd04138bd0b4afdbe9eb7b1bdf38a7e3fa0397d3d000080bf5e05843db88c573fcbcc4cbe999919becbcc4cbd7e487fbfa49758bda397583d636c53bd33947f3f706acc3c000080bfd4738d3dc3d1763fb9f545be989919be9811cdbc692e5ebfeb4138bd0d4afd3e16b370bdc3897f3f91f449bc000080bf6105843de1ff7c3fb9f545becfcc4cbda011cdbc692e5ebfdd41383d0d4afd3ea19d643d2c987f3f6fa9e93b000080bfacdd083eed297c3fcbcc4cbecbcc4cbdcbcc4cbd7e487fbf9d97583d9e97583d70805f3ddb7e7f3fcbcdfd3c000080bfe7940d3ecffb753fcbcc4cbecbcc4cbd989919be7e487fbfa797583d9f9758bdd9e4503d837f7f3f169e143d000080bfe7940d3e93015d3fb9f545becfcc4cbd992a33be692e5ebf0442383d0a4afdbec645b93c8d997f3fff5b513d000080bfabdd083ec5b6563f9899193eb9f545bea011cdbcf341383d692e5ebf084afd3ef6450dbfaf4bc83ee18a3c3f000080bfcea83b3f32a6433f9c15323ec9503fbe80b9d5bc4f25d53e55ee4ebf5725d53ead44cbbe2528803ed90d623f000080bf3494383f3506493f9c15323e9d1532be40c057bc5b81ee3eb082eebe6d98403f8b2f08bf732f083f8aa6283f000080bf12dd3a3f144f4b3f9899193e992a33be60e2dabb35eb033d0e7510bffa2f533f4c2121bf8934213f261ee93e000080bf8de73e3ff0e4463fcfcc4c3d992a33be40e2dabbbdf800bd12ab10bfd00c533fd3632fbf57de1c3fd5a8c93e000080bf0996503f7536353fcfcc4c3db9f545be9811cdbcda4138bd692e5ebf0a4afd3e91b523bf2999cf3e2b37273f000080bf4a574d3fb6f7313f80b9d53cc9503fbe78b9d5bc5325d5be54ee4ebf5525d53ec9992abf942e153f9220ee3e000080bf4eb7523f1be32e3f80b9d53c9c1532be20c057bc682bcfbe499105bfe443403f47833fbf3e44293fca92663d000080bf2c00553ffa2b313f20731e3e0ad723be1d9e83bb6d1a873eb7467fbe7a896e3f0aae28bf2eae283fcbcbb93e000080bfaab6403fce604a3f9899193e0ad723be6d562fbba344c63b5c5384be2e4c773f0dd92ebf975b343f1065453e000080bf0a8d413f6d8a493fcecc4c3d0ad723be5d562fbb6b474cbc595184be6b48773f5a4235bf1c352f3fcf24323e000080bf863b533ff2db373f06d7233d0ad723befd76b4bb20a785bec91881be868b6e3f7ff434bf5f13353f3103d9bb000080bf2c00553f4b17363f5cb0d03c0ad723be23e719bc4d5413bfb57973bef94f483f498926bfce81363faf0e86be000080bfa891573fcf85333f40c0573c9d1532be78b9d5bc023142bf0fa003bf9bf1cc3ebf9f26bf997d203f513adbbe000080bf0a49573f1be32e3f38e7193c0ad723be54b0d0bc189650bf87347abea197063f8d3508bf45e22c3fb2be02bf000080bf92695a3fe6ad303f1e5b213e205b21befaaf88bb5edf833ee7e182beaa8c6e3f1cae28bf1cae283fc7cbb93e000080bf00a4403f144f4b3f0ad7233ebd3d1fbe37ca8abbb7467f3e6d1a87be7a896e3f1eae28bf1aae283fcacbb93e000080bfad93403f5d1a4c3f992a333e989919be60e2dabba482103f852d03bd2627533f923121bf4121213f7c26e93e000080bf8de73e3f37b94f3fc9503f3e9c1532be80b9d5bc54ee4e3f5025d5be5d25d53e322880be9f44cb3edb0d623f000080bf3494383ff2974d3fb9f5453e989919bea011cdbc692e5e3ff04138bd0d4afd3ea14bc8be0c460d3fd48a3c3f000080bfcea83b3ff6f7523f0ad7233e999919be77562fbb2f53843e70cae5bbc54b773fd44d34bfaedb2e3fc808463e000080bf0a8d413fba134d3fb9f5453ecfcc4cbda011cdbc692e5e3ff041383d0d4afd3e2299cfbe9fb5233f1f37273f000080bf4a574d3f72a6643f992a333ecfcc4cbd60e2dabb8af80f3fb7b20a3d9c80533f09791dbfcc512f3f9203c83e000080bf0996503fb367613f0ad7233ececc4cbd6d562fbb464b843ec021ba3cfd3c773f9c952fbf7255353f69d72a3e000080bf863b533f36c25e3f9c15323e80b9d5bc40c057bc026c063f82fdcf3e4e723f3f964229bf9b7c3f3f5e3b6d3d000080bf2c00553f2e72653fc9503f3e80b9d5bc80b9d5bc53ee4e3f5a25d53e5a25d53efd2a10bfb9be403ff35dae3e000080bf4eb7523f0cbb673f0ad7233e07d723bd0e77b4bbcdfb813e1bc5843e428c6e3fa5ea34bf5e1e353f01718ebb000080bf2c00553fdc86603f9c15323e40c057bc80b9d5bc026c063f4e723f3f82fdcf3ec6f732bf40b7263fff2897be000080bf0b49573f0cbb673f0ad7233e5cb0d0bc3ae719bcd179733e4a54133ffa4f483fb18136bf6189263fd30e86be000080bfa891573f5818633f0ad7233e3ae719bc5cb0d0bcd179733efa4f483f4a54133fac9029bf3661103f317efcbe000080bf92695a3f42f0653f9c15323ec9503fbe80b9d5bc4f25d53e55ee4ebf5725d53e78ba8fbec377a43e5589673f000080bf6a72283f7e70b23ec9503f3e9c1532be80b9d5bc54ee4e3f5025d5be5d25d53ebeeda3be2dac903e2a7c673f000080bf3a72283ff593bb3e9c15323e9d1532be40c057bc5b81ee3eb082eebe6d98403f84d907bf5b85083f78a6283f000080bfa38e2b3f93feb63eb9f5453e992a33becfcc4cbd692e5e3f064afdbef541383ddb2db2bc218f573da8957f3f000080bfec8a223fd881bd3ecbcc4c3e989919becbcc4cbd7e487f3f9b9758bda697583dd11f3fbd0f9be63d60177e3f000080bf9a60223fa8adc83eb9f5453e989919bea011cdbc692e5e3ff04138bd0d4afd3ef485f0bef35e7f3edbc9583f000080bf758d283f0c4fc63ecbcc4c3ecbcc4cbdcbcc4cbd7e487f3fa297583da297583de14e78bdb55b213e30537c3f000080bfb079213f4eeeeb3eb9f5453ecfcc4cbda011cdbc692e5e3ff041383d0d4afd3e6f6cf8be5598943e3728533f000080bf8ba6273fb28fe93ec9503f3e80b9d5bc80b9d5bc53ee4e3f5a25d53e5a25d53e45780abfbad17b3ee3e84d3f000080bfe41c273f4db0ef3eb9f5453ea011cdbccfcc4cbd692e5e3f0a4afd3eeb41383d456523bed07c443e65e6773f000080bfb530213fe65cf23ecbcc4c3ecbcc4cbd999919be7e487f3fa397583da09758bdd44e783d8d5b21be30537c3f000080bf8e80083f4eeeeb3eb9f5453ea011cdbc989919be692e5e3f0d4afd3eee4138bd2365233e8a7c44be6be6773f000080bf9337083fe65cf23ec9503f3e80b9d5bc9d1532be54ee4e3f5b25d53e5525d5be3b780a3f51d17bbef1e84d3f000080bf7c32023f4eb0ef3eb9f5453ecfcc4cbd992a33be692e5e3fea41383d064afdbe696cf83e3f9894be3b28533f000080bf0a35023fb28fe93ecbcc4c3e999919be989919be7e487f3f9e9758bd9b9758bdc61f3f3d029be6bd60177e3f000080bf7767093fa8adc83eb9f5453e989919be992a33be6a2e5e3fea4138bd044afdbeed85f03ed75e7fbedec9583f000080bff41b033f0c4fc63ec9503f3e9d1532be9c1532be55ee4e3f5625d5be4f25d5beb6eda33e1dac90be2d7c673f000080bfd387033ff693bb3eb9f5453e992a33be989919be692e5e3f064afdbeed4138bd802eb23c828e57bdaa957f3f000080bfca91093fd881bd3e992a333eb9f545be989919be064afd3e692e5ebfed4138bda981543de4abb5bc9b977f3f000080bf0e92093fe186b03e992a333eb9f545becfcc4cbd064afd3e6a2e5ebff041383dac8154bde6abb53c9b977f3f000080bf308b223fe086b03e9c15323ec9503fbe9c1532be4d25d53e57ee4ebf5525d5be4eba8f3ed677a4be5689673f000080bf0288033f7e70b23e9d15323e9c1532bec9503fbe5a25d53e4e25d5be54ee4ebf4dfa113f97aa12bf72b7163f000080bf1d30003f94feb63e9899193ecbcc4cbe999919be9e97583d7e487fbf9f9758bdf903e43dd96d3fbd7f207e3f000080bf2f68093fba50a53e9899193eb9f545be992a33bef041383d6a2e5ebf064afdbe47c97c3eebbcf0be0feb583f000080bf931c033f8eaba73e9999193ecbcc4cbecbcc4cbda297583d7e487fbfa397583d0e04e4bdd96d3f3d7d207e3f000080bf5161223fba50a53e9899193eb9f545bea011cdbcf341383d692e5ebf084afd3e78c97cbee6bcf03e0ceb583f000080bf148e283f8eaba73ecfcc4c3db9f545be9811cdbcda4138bd692e5ebf0a4afd3eff567bbeb0b0fa3e0e30563f000080bf9ba8273f5b32843ecbcc4c3dcbcc4cbecbcc4cbda39758bd7e487fbfa297583dadf606be8d8b733d504f7d3f000080bfd87b213f86d7813ecbcc4c3dcbcc4cbe989919bea39758bd7e487fbf9e9758bdbef6063e8c8b73bd4e4f7d3f000080bfb682083f86d7813ecbcc4c3db9f545be992a33beed4138bd692e5ebf064afdbe0e577b3ea9b0fabe0e30563f000080bf1937023f5b32843e0ad7233e1877b4bb06d723bdc8fb813e448c6e3f19c5843e44d526bfef7b08bd05fc413f000080bf3471773fd9a1343f0ad7233e3ae719bc5cb0d0bcd179733efa4f483f4a54133ff5043fbfc8c06dbeb2bb1f3f000080bffe677a3f7792323f9c15323e40c057bc80b9d5bc026c063f4e723f3f82fdcf3e9a443fbf91be343e870b243f000080bf0c50783f2464303f0ad7233e77562fbbcecc4cbd474b843efd3c773fcf21ba3cbd1527bf74f4203e3bbc3d3f000080bf1865753f520a363f992a333e60e2dabbcfcc4cbd8af80f3f9c80533fb8b20a3dacb121bf253bce3e2095293f000080bf6c44733fac95333f992a333e60e2dabb989919be2eea0f3f9789533f8ae40bbd0c702bbfd346f53e8646113f000080bf1002603f3482433fc9503f3e80b9d5bc80b9d5bc53ee4e3f5a25d53e5a25d53e7d8816bf5e35093f50141b3f000080bfaee1763f1be32e3fb9f5453ea011cdbccfcc4cbd692e5e3f0a4afd3eeb41383d4bf9dfbee7de373feb830a3f000080bf0a3c713fc572313f0ad7233e6d562fbb989919bea053843e984c773fe77b9ebb862b36bf836a463ecae22c3f000080bfbc22623fdaf6453fb9f5453ea011cdbc989919be692e5e3f0d4afd3eee4138bd701fddbe36d44b3f1bf1d83e000080bfaef95d3f4d5f413f0ad7233efc4775bb87751dbeb1467f3e7c896e3f621a87be3c4c2fbf677cb93e82e1213f000080bfa274613f43a2463f72a5203e465c78bb71a520bec1e2723e83d4713f631b68be21cf2fbfd9f9a73e400d263f000080bf5a56613fd3b2473f87751d3e0e4875bb0ad723be6aa6823e1f686e3f322185be170f2fbfbb56ba3effe4213f000080bf7736613fc9c1483f9c15323e40c057bc9c1532be7520ea3ec830433fcd5feabeead21abfeedc243f9de1ef3e000080bfefd75b3f1dee473fc9503f3e80b9d5bc9d1532be54ee4e3f5b25d53e5525d5beeda3abbe0220683f99fa823e000080bf91695a3f146d463f9999193e77562fbb0ad723be5362a83cf43f773fdc4c84be6b1231bffe294d3e16a0313f000080bff7be613f185f493f9899193e60e2dabb992a33beb8b20a3d9c80533f8bf80fbf793c31bf05b6d93e7c3e153f000080bff7085f3ff4034c3fcecc4c3d6d562fbb0ad723be8c29e0bc412d773fcd8584be292f2ebf89d22f3e3162363f000080bf9e1b713f01855b3fcfcc4c3d60e2dabb992a33beb7b20abd9c80533f8af80fbfcc9435bf66ccc03ebf8c183f000080bf9e656e3fdc295e3f80b9d53c40c057bc9c1532be9cf1ccbe0231423f0fa003bf0c9e34bfb2d7d23df07e333f000080bf3b8d723fc0c1623f5cb0d03c3ae719bc0ad723bea59706bf1696503f9b347abec6081cbfe55224be10c0463f000080bfd429753f5968603fcfcc4c3da011cdbcb9f545beee4138bd0b4afd3e692e5ebfe3da3abf03af133f2fbbbb3e000080bf20a66b3fc947623f80b9d53c80b9d5bcc9503fbe5825d5be5825d53e54ee4ebf586241bf3a3eac3e3ef30f3f000080bff49d703fbea7653f3ae7193c5cb0d0bc0ad723befa4f48bf4a54133fcd7973be89320bbf1f0ce4be6218363f000080bfb252783f625f643f40c0573c80b9d5bc9c1532be4d723fbf84fdcf3e026c06bfce4227bf08c89ebed4cb303f000080bf2517753f50f1653f1877b43b06d723bd0ad723be448c6ebf19c5843ecafb81be06b3b9beab5024bf02f62c3f000080bfe68a793fec05663f77562f3bcecc4cbd0ad723befd3c77bffd21ba3c3c4b84beead556be2b7927bf89053a3f000080bffe677a3f1730673f60e2da3bcfcc4cbd992a33be9c8053bfd2b20a3d8af80fbf8a08e6be7f5324bf94121f3f000080bf94e8763f31d8683fb9f5453e989919be992a33be6a2e5e3fea4138bd044afdbe566dc7bcdea77d3fe4fe07be000080bff266393f00000000c9503f3e9d1532be9c1532be55ee4e3f5625d5be4f25d5be19b5693e5b965f3f1d48dcbe000080bf546c333f20aecf3b9d15323e9c1532bec9503fbe5a25d53e4e25d5be54ee4ebf8439b83b2be3633fbe3fe9be000080bf546c333fa84f9b3c992a333e989919beb9f545be044afd3eea4138bd6a2e5ebf051025bdec137f3f12d098bd000080bff266393f48db923c992a333ecfcc4cbdb9f545be064afd3eed41383d6a2e5ebf4a10253dec137f3f28d0983d000080bf5c68523f48db923cb9f5453ecfcc4cbd992a33be692e5e3fea41383d064afdbe806dc73cdea77d3fecfe073e000080bf5c68523f00000000c9503f3e80b9d5bc9d1532be54ee4e3f5b25d53e5525d5be6da913be3558533f9faa0b3f000080bffa62583f40aecf3b9c15323e80b9d5bcc9503fbe4e25d53e5a25d53e54ee4ebf3952863c49ac623fedcded3e000080bffa62583fb84f9b3c9c15323e40c057bc9c1532be7520ea3ec830433fcd5feabe0ba1cebd7d4e0e3fa33a533f000080bf1b9e5b3fb84f9b3c9899193e60e2dabb992a33beb8b20a3d9c80533f8bf80fbf8cabd2bbbb18103f8596533f000080bf773d5d3fb8512d3d9899193ecbcc4cbdcbcc4cbe9997583da697583d7e487fbf16558b3baea27f3f97d0593d000080bf5c68523fb8512d3d9999193e989919becbcc4cbe9d97583d9d9758bd7e487fbf3f528bbbaea27f3f89d059bd000080bff266393fb4512d3d9899193ea011cdbcb9f545bef041383d0d4afd3e692e5ebf0000000032685e3f338bfd3e000080bf9da6583fb8512d3dcfcc4c3da011cdbcb9f545beee4138bd0b4afd3e692e5ebfd3147e3b496d5e3f6177fd3e000080bf9da6583f175a0f3ecfcc4c3d60e2dabb992a33beb7b20abd9c80533f8af80fbf8eabd23bba18103f8596533f000080bf773d5d3f175a0f3ecbcc4c3dcbcc4cbdcbcc4cbea09758bda297583d7e487fbf01548bbbaea27f3f8ed0593d000080bf5c68523f175a0f3e80b9d53c80b9d5bcc9503fbe5825d5be5825d53e54ee4ebf18a6923dd8b9663f1cc6da3e000080bffa62583f8d44273e9899193e992a33beb9f545bef041383d064afdbe6a2e5ebf0000000035685e3f2e8bfdbe000080bfb028333fb4512d3d9c15323ec9503fbe9c1532be4d25d53e57ee4ebf5525d5be56faf53d7db3003f59265bbf000080bf3331303fb04f9b3c9899193eb9f545be992a33bef041383d6a2e5ebf064afdbe8fa3493ceac5fd3ebf515ebf000080bfd6912e3fb4512d3dcbcc4c3db9f545be992a33beed4138bd692e5ebf064afdbe87a349bcebc5fd3ebd515ebf000080bfd6912e3f175a0f3ecbcc4c3d992a33beb9f545beeb4138bd064afdbe6a2e5ebf0000000034685e3f308bfdbe000080bfb028333f175a0f3ecbcc4c3d999919becbcc4cbe9e9758bda09758bd7e487fbf50558b3baea27f3f91d059bd000080bff266393f175a0f3e78b9d53c9d1532bec9503fbe5125d5be5525d5be57ee4ebf0535b8bb28e3633fcb3fe9be000080bf546c333f8e44273e78b9d53cc9503fbe9c1532be5825d5be57ee4ebf4925d5be5bfaf5bd78b3003f5c265bbf000080bf3231303f8e44273ea011cd3ccfcc4cbdb9f545be084afdbefb41383d692e5ebf3c1025bdec137f3f2dd0983d000080bf5c68523f1a53283e9811cd3c989919beb9f545be064afdbed54138bd6a2e5ebf4310253dec137f3f16d098bd000080bff266393f1b53283e20c0573c9c1532be9d1532be509042bf3566ebbedb2eebbefaf274be28e55a3fb98cebbe000080bf546c333f1331343e40e2da3b989919be992a33be205f53bf673708bd0c2c10bf43fd273d08f97d3fc71ff3bd000080bff266393f84ae3a3e60e2da3bcfcc4cbd992a33be9c8053bfd2b20a3d8af80fbfa9a425bd34f77d3fba00f43d000080bf5c68523f83ae3a3e40c0573c80b9d5bc9c1532be4d723fbf84fdcf3e026c06bf1679343e1650623feda7dd3e000080bffa62583f1231343ecbcc4c3dcbcc4cbecbcc4cbda39758bd7e487fbfa297583deb207f3f609765bd179c77bd000080bf0fb87d3f57cd063dcfcc4c3db9f545be9811cdbcda4138bd692e5ebf0a4afd3e486b7b3f752c04bed36e0cbe000080bf41087c3f5138173c80b9d53cc9503fbe78b9d5bc5325d5be54ee4ebf5525d53e3c0b5b3f86ce00bf2d77f8bd000080bfccb0763fe2ef3a3ca011cd3cb9f545becbcc4cbd084afdbe692e5ebff341383d81835d3f7f51febed3278abd000080bfae22783f59b20b3d9811cd3cb9f545be989919be084afdbe692e5ebfdb4138bd194b5e3f68a7fbbe6e0e88bd000080bfba2f7a3f287f063ecbcc4c3dcbcc4cbe989919bea39758bd7e487fbf9e9758bdd47d7f3f7cb950bda6b417bd000080bf1bc57f3fe845053e78b9d53cc9503fbe9c1532be5825d5be57ee4ebf4925d5bed18e643f6b6ce6be9e4b9bbc000080bfecb8793f72df1e3ecbcc4c3db9f545be992a33beed4138bd692e5ebf064afdbed6c97e3ff72fa7bd95eb573d000080bf7a1b7f3fa7be1e3e40e2da3b992a33be989919be9c8053bf89f80fbf94b20abd491e103f365852bfaf9db6bd000080bfd6b7733f4ca0083e40c0573c9d1532be78b9d5bc023142bf0fa003bf9bf1cc3e85e9063fdc6a58bff78fb2bd000080bf0023723f9fec523c80b9d53c9c1532be20c057bc682bcfbe499105bfe443403ff67b2f3f4d7637bfeba103be000080bf4427743f0000000060e2da3b992a33becbcc4cbd9c8053bf8af80fbfc5b20a3d91b30e3f921d53bfb95fc4bd000080bfcaaa713fec36143d6d562f3b0ad723becbcc4cbd432d77bfc28584beb129e03c26b0823e065376bf5b66c2bd000080bff7536e3fd7151a3d38e7193c0ad723be54b0d0bc189650bf87347abea197063fab38703edfde77bfc400b1bd000080bfe4026f3f2cfa5e3c5d562f3b0ad723be999919be3a3f77bf6e4c84bef7f4acbcc2b8843e540d76bfe16bc2bd000080bf0361703f08180a3e20c0573c9c1532be9d1532be509042bf3566ebbedb2eebbe1b5a0f3ffa6d52bf8781d4bd000080bf222b753f405f203e78b9d53c9d1532bec9503fbe5125d5be5525d5be57ee4ebf06ba413fedc526bf7d1a5ebd000080bf14b7773fc2eb2c3e5572893b0ad723becd171fbe71666ebf0cfa84be78da82be21f4943ea0c873bff918bdbd000080bfdac1703fdf650f3e40e2da3b989919be992a33be205f53bf673708bd0c2c10bffac5fc3d03177cbfc680fbbd000080bfefd66f3f67c5233e05678b3bb9e522be073320be75c073bfd60153bed11c67beeb5d6d3e0add77bfe360c0bd000080bfc7a0703f788e103e65e8893bda6c21bedb6c21be783571bfaf2171bedcf973be43f7863ee4c775bf8aa3bfbd000080bf4864703f97e1113e5062843bc9881ebe0ad723be7a896ebf721a87beab467fbe5ed7963e736f73bf6cd1c1bd000080bff3e96f3fe47d143e54562f3b989919be0ad723be234c77bf65a4c9bb575384be176c253d71b47dbf956902be000080bf54d36e3f54f7143e77562f3bcecc4cbd0ad723befd3c77bffd21ba3c3c4b84beb3fe363b9cc47ebf6699c8bd000080bf773d5d3faf1d1e3e60e2da3bcfcc4cbd992a33be9c8053bfd2b20a3d8af80fbf6c67ba3cb9d07ebfa533bfbd000080bf12415e3fc2eb2c3e + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 0, y: 0, z: -0.09999999} + m_Extent: {x: 0.19999997, y: 0.19999997, z: 0.09999999} + m_MeshUsageFlags: 0 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + m_MeshMetrics[0]: 1.6879306 + m_MeshMetrics[1]: 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: +--- !u!1 &918098384 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8495,8 +7936,8 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1314657003} - - component: {fileID: 1314657004} + - component: {fileID: 918098385} + - component: {fileID: 918098386} m_Layer: 0 m_Name: HandLeft m_TagString: Untagged @@ -8504,28 +7945,28 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1314657003 +--- !u!4 &918098385 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1314657002} + m_GameObject: {fileID: 918098384} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1943140085} + m_Father: {fileID: 54233951} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!137 &1314657004 +--- !u!137 &918098386 SkinnedMeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1314657002} + m_GameObject: {fileID: 918098384} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -8566,33 +8007,33 @@ SkinnedMeshRenderer: m_SkinnedMotionVectors: 1 m_Mesh: {fileID: -1400252653696632910, guid: 3cc1bfa741063664e8b13a63afcd062f, type: 3} m_Bones: - - {fileID: 693789267} - - {fileID: 1011798184} - - {fileID: 883197912} - - {fileID: 1049921004} - - {fileID: 1269771531} - - {fileID: 1880415575} - - {fileID: 1854514984} - - {fileID: 1292505773} - - {fileID: 1860767444} - - {fileID: 874857669} - - {fileID: 172305591} - - {fileID: 1502566884} - - {fileID: 2055471706} - - {fileID: 136761118} - - {fileID: 2028302228} - - {fileID: 1640516631} - - {fileID: 1697840221} - - {fileID: 1882010424} - - {fileID: 1508614847} - - {fileID: 961598098} + - {fileID: 2109031085} + - {fileID: 740016310} + - {fileID: 1714243700} + - {fileID: 933831182} + - {fileID: 1418001335} + - {fileID: 679583488} + - {fileID: 1836407205} + - {fileID: 2030842803} + - {fileID: 2146657147} + - {fileID: 695049119} + - {fileID: 1466462400} + - {fileID: 1338586625} + - {fileID: 1289966973} + - {fileID: 388840135} + - {fileID: 2139940513} + - {fileID: 628411316} + - {fileID: 1494241464} + - {fileID: 595536807} + - {fileID: 391997631} + - {fileID: 1909973946} m_BlendShapeWeights: [] - m_RootBone: {fileID: 961598098} + m_RootBone: {fileID: 1909973946} m_AABB: m_Center: {x: -0.10444905, y: -0.0046319105, z: 0.015674934} m_Extent: {x: 0.10534169, y: 0.05054314, z: 0.081589594} m_DirtyAABB: 0 ---- !u!1 &1314738489 +--- !u!1 &933831181 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8600,69 +8041,201 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1314738492} - - component: {fileID: 1314738491} - - component: {fileID: 1314738490} + - component: {fileID: 933831182} m_Layer: 0 - m_Name: XR_Setup_Action_Based_Hands + m_Name: Ring_2_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1314738490 -MonoBehaviour: +--- !u!4 &933831182 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1314738489} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: eb84184823a056249bfba5107e766ec3, type: 3} - m_Name: - m_EditorClassIdentifier: - layerSet: 2 - interactors: - - {fileID: 1701227374} - - {fileID: 2115926222} ---- !u!114 &1314738491 + m_GameObject: {fileID: 933831181} + m_LocalRotation: {x: -0.0013731687, y: -0.0005792431, z: -0.08538537, w: 0.9963469} + m_LocalPosition: {x: -0.028493328, y: -0.00000044822693, z: -0.0000003170967} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 326836476} + m_Father: {fileID: 2146657147} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &995671519 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 995671520} + m_Layer: 0 + m_Name: Ring_1_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &995671520 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 995671519} + m_LocalRotation: {x: -0.00025817356, y: 0.00035699108, z: -0.14537643, w: 0.9893763} + m_LocalPosition: {x: -0.036576994, y: 0.00000019073485, z: 0.0000001502037} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1481350550} + m_Father: {fileID: 1968119230} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1006305323 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2121825122} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + propertyPath: m_LocalPosition.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + propertyPath: m_LocalPosition.y + value: 1.95 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7511558181221131132, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: d586649e59c967444a1607a4aed46c01, type: 2} + - target: {fileID: 919132149155446097, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + propertyPath: m_Name + value: Shield + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} +--- !u!1 &1015737781 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1015737782} + - component: {fileID: 1015737784} + - component: {fileID: 1015737783} + m_Layer: 0 + m_Name: LeftHand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1015737782 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1015737781} + m_LocalRotation: {x: -0.27542365, y: 0.27542365, z: 0.65126175, w: 0.65126175} + m_LocalPosition: {x: -0.0358, y: 0.0577, z: -0.1296} + m_LocalScale: {x: 0.95, y: 0.95, z: 0.95} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 105739408} + - {fileID: 1987239407} + - {fileID: 1199504349} + m_Father: {fileID: 506692965} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -45.848, y: 0, z: 90} +--- !u!114 &1015737783 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1314738489} + m_GameObject: {fileID: 1015737781} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f391ac734d94ea34697b6cde3269f11a, type: 3} + m_Script: {fileID: 11500000, guid: e241df096dff11c478f43d1b202d33af, type: 3} m_Name: m_EditorClassIdentifier: - uniqueName: User - tags: [] - head: {fileID: 2013188264} - leftHand: {fileID: 1809129953} - rightHand: {fileID: 1390367067} ---- !u!4 &1314738492 -Transform: + selectFloat: Select + activateFloat: Activate + UIStateBool: UIEnabled + teleportStateBool: TeleportEnabled + baseController: {fileID: 0} + teleportController: {fileID: 0} + uiController: {fileID: 0} + controllerManager: {fileID: 0} +--- !u!95 &1015737784 +Animator: + serializedVersion: 5 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1314738489} - m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} - m_LocalPosition: {x: 0, y: 0, z: 7.5} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 989050510} - - {fileID: 1457759948} - - {fileID: 1405161007} - - {fileID: 895449170} - m_Father: {fileID: 0} - m_RootOrder: 11 - m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} ---- !u!1 &1316947018 + m_GameObject: {fileID: 1015737781} + m_Enabled: 1 + m_Avatar: {fileID: 9000000, guid: 3cc1bfa741063664e8b13a63afcd062f, type: 3} + m_Controller: {fileID: 9100000, guid: 6f17d5d554bc9b742b9bf585b813330c, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!1 &1074416407 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8670,30 +8243,31 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1316947019} + - component: {fileID: 1074416408} m_Layer: 0 - m_Name: AttachTransform + m_Name: Thumb_0_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1316947019 +--- !u!4 &1074416408 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1316947018} - m_LocalRotation: {x: 0.36650118, y: 0, z: 0, w: 0.9304176} - m_LocalPosition: {x: -0.0447, y: -0.0476, z: 0.0131} + m_GameObject: {fileID: 1074416407} + m_LocalRotation: {x: -0.017132446, y: 0.023738552, z: -0.011670226, w: 0.9995033} + m_LocalPosition: {x: -0.027674861, y: -0.00000018596648, z: 0.00000015173107} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 637860737} + m_Children: + - {fileID: 283625090} + m_Father: {fileID: 25957662} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 43, y: 0, z: 0} ---- !u!1 &1327392148 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1078070623 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8701,30 +8275,31 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1327392149} + - component: {fileID: 1078070624} m_Layer: 0 - m_Name: Little_Tip_Left + m_Name: Middle_1_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1327392149 +--- !u!4 &1078070624 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1327392148} - m_LocalRotation: {x: 0.000000022351742, y: 0.000000014901163, z: -0.00000002793968, w: 1} - m_LocalPosition: {x: -0.017860297, y: 0.00000007152557, z: -0.00000015258789} + m_GameObject: {fileID: 1078070623} + m_LocalRotation: {x: 0.0013464622, y: -0.0029157132, z: -0.22192244, w: 0.9750591} + m_LocalPosition: {x: -0.039041024, y: 0.0000006005168, z: 0.00000011503696} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1216485171} + m_Children: + - {fileID: 626500155} + m_Father: {fileID: 1430860603} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1359767050 +--- !u!1 &1106929323 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8732,45 +8307,96 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1359767051} - - component: {fileID: 1359767052} + - component: {fileID: 1106929324} + - component: {fileID: 1106929327} + - component: {fileID: 1106929326} + - component: {fileID: 1106929325} m_Layer: 0 - m_Name: Collider (1) + m_Name: SnapPoint m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1359767051 +--- !u!4 &1106929324 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1359767050} - m_LocalRotation: {x: 0.27059805, y: 0.27059805, z: 0.6532815, w: 0.6532815} - m_LocalPosition: {x: 0.1617, y: 0, z: 0.18} + m_GameObject: {fileID: 1106929323} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 660021081} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 45, z: 90} ---- !u!136 &1359767052 -CapsuleCollider: + m_Father: {fileID: 597715543} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1106929325 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1106929323} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 738067764} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1106929326 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1106929323} + m_Mesh: {fileID: 524671518} +--- !u!114 &1106929327 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1359767050} - m_Material: {fileID: 0} - m_IsTrigger: 0 + m_GameObject: {fileID: 1106929323} m_Enabled: 1 - m_Radius: 0.02 - m_Height: 0.2 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &1364604469 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88ea78c93b844cc1b7f98cca70e8679c, type: 3} + m_Name: + m_EditorClassIdentifier: + parent: {fileID: 597715544} +--- !u!1 &1142522480 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8778,63 +8404,62 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1364604472} - - component: {fileID: 1364604471} - - component: {fileID: 1364604470} + - component: {fileID: 1142522481} m_Layer: 0 - m_Name: PROCESS_CONFIGURATION + m_Name: Ring_Palm_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1364604470 -MonoBehaviour: +--- !u!4 &1142522481 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1364604469} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 215a8bb6dc630a44299469418bc73e6f, type: 3} - m_Name: - m_EditorClassIdentifier: - extensionAssembliesWhitelist: [] - defaultConfettiPrefab: Confetti/Prefabs/MindPortConfettiMachine ---- !u!114 &1364604471 -MonoBehaviour: + m_GameObject: {fileID: 1142522480} + m_LocalRotation: {x: 0.99804187, y: -0.04426889, z: 0.04315787, w: 0.009497783} + m_LocalPosition: {x: -0.05238823, y: 0.0045133065, z: -0.011750946} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1968119230} + m_Father: {fileID: 105739408} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1177651916 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1364604469} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2ef5789d95ab46e095b834b7c4789068, type: 3} - m_Name: - m_EditorClassIdentifier: - runtimeConfigurationName: VRBuilder.Core.Configuration.DefaultRuntimeConfiguration, - VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - selectedProcessStreamingAssetsPath: Processes/Demo - Core Features/Demo - Core - Features.json - processStringLocalizationTable: ---- !u!4 &1364604472 + serializedVersion: 6 + m_Component: + - component: {fileID: 1177651917} + m_Layer: 0 + m_Name: Middle_Tip_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1177651917 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1364604469} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_GameObject: {fileID: 1177651916} + m_LocalRotation: {x: -0.00000002980233, y: -0.00000005308539, z: -0.000000042258765, w: 1} + m_LocalPosition: {x: -0.022676239, y: 0.00000029563904, z: -0.000000077486035} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 626500155} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1389664209 +--- !u!1 &1192304053 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8842,33 +8467,34 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1389664210} + - component: {fileID: 1192304054} m_Layer: 0 - m_Name: CameraOffset + m_Name: Transformation Machine m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1389664210 +--- !u!4 &1192304054 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1389664209} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_GameObject: {fileID: 1192304053} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 1} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 2013188264} - - {fileID: 1401794268} - - {fileID: 1839515083} - m_Father: {fileID: 989050510} - m_RootOrder: 0 + - {fileID: 1471223338} + - {fileID: 1583804101} + - {fileID: 2011926244} + - {fileID: 535679137} + m_Father: {fileID: 1527860102} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1390367066 +--- !u!1 &1199504348 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8876,528 +8502,236 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1390367067} - - component: {fileID: 1390367070} - - component: {fileID: 1390367069} - - component: {fileID: 1390367068} + - component: {fileID: 1199504349} m_Layer: 0 - m_Name: Right Base Controller + m_Name: AttachTransform m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1390367067 +--- !u!4 &1199504349 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1390367066} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_GameObject: {fileID: 1199504348} + m_LocalRotation: {x: 0.56707263, y: -0.5567243, z: -0.42857793, w: 0.42989275} + m_LocalPosition: {x: -0.09850459, y: -0.018400598, z: -0.0062015653} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 686681832} - m_Father: {fileID: 1839515083} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!135 &1390367068 -SphereCollider: + m_Children: [] + m_Father: {fileID: 1015737782} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0.594, y: -105.251, z: -90.602} +--- !u!1001 &1204090590 +PrefabInstance: m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1390367066} - m_Material: {fileID: 0} - m_IsTrigger: 1 - m_Enabled: 1 serializedVersion: 2 - m_Radius: 0.05 - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &1390367069 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1390367066} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b7231d59cedbff745ae8517a2b954506, type: 3} - m_Name: - m_EditorClassIdentifier: - m_InteractionManager: {fileID: 1457759947} - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 1 - m_InteractionLayers: - m_Bits: 1 - m_AttachTransform: {fileID: 952131645} - m_KeepSelectedTargetValid: 1 - m_DisableVisualsWhenBlockedInGroup: 1 - m_StartingSelectedInteractable: {fileID: 0} - m_StartingTargetFilter: {fileID: 0} - m_HoverEntered: - m_PersistentCalls: - m_Calls: [] - m_HoverExited: - m_PersistentCalls: - m_Calls: [] - m_SelectEntered: - m_PersistentCalls: - m_Calls: [] - m_SelectExited: - m_PersistentCalls: - m_Calls: [] - m_StartingHoverFilters: [] - m_StartingSelectFilters: [] - m_OnHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_OnHoverExited: - m_PersistentCalls: - m_Calls: [] - m_OnSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_OnSelectExited: - m_PersistentCalls: - m_Calls: [] - m_SelectActionTrigger: 1 - m_HideControllerOnSelect: 0 - m_AllowHoveredActivate: 0 - m_TargetPriorityMode: 0 - m_PlayAudioClipOnSelectEntered: 0 - m_AudioClipForOnSelectEntered: {fileID: 0} - m_PlayAudioClipOnSelectExited: 0 - m_AudioClipForOnSelectExited: {fileID: 0} - m_PlayAudioClipOnSelectCanceled: 0 - m_AudioClipForOnSelectCanceled: {fileID: 0} - m_PlayAudioClipOnHoverEntered: 0 - m_AudioClipForOnHoverEntered: {fileID: 0} - m_PlayAudioClipOnHoverExited: 0 - m_AudioClipForOnHoverExited: {fileID: 0} - m_PlayAudioClipOnHoverCanceled: 0 - m_AudioClipForOnHoverCanceled: {fileID: 0} - m_AllowHoverAudioWhileSelecting: 1 - m_PlayHapticsOnSelectEntered: 1 - m_HapticSelectEnterIntensity: 0.5 - m_HapticSelectEnterDuration: 0.25 - m_PlayHapticsOnSelectExited: 1 - m_HapticSelectExitIntensity: 0.5 - m_HapticSelectExitDuration: 0.125 - m_PlayHapticsOnSelectCanceled: 0 - m_HapticSelectCancelIntensity: 0 - m_HapticSelectCancelDuration: 0 - m_PlayHapticsOnHoverEntered: 1 - m_HapticHoverEnterIntensity: 0.25 - m_HapticHoverEnterDuration: 0.25 - m_PlayHapticsOnHoverExited: 1 - m_HapticHoverExitIntensity: 0.25 - m_HapticHoverExitDuration: 0.125 - m_PlayHapticsOnHoverCanceled: 0 - m_HapticHoverCancelIntensity: 0 - m_HapticHoverCancelDuration: 0 - m_AllowHoverHapticsWhileSelecting: 1 - m_ImproveAccuracyWithSphereCollider: 0 - m_PhysicsLayerMask: - serializedVersion: 2 - m_Bits: 1 - m_PhysicsTriggerInteraction: 1 - precisionGrab: 1 ---- !u!114 &1390367070 -MonoBehaviour: + m_Modification: + m_TransformParent: {fileID: 1756511964} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} + propertyPath: m_LocalPosition.z + value: 0.75 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7511558181221131132, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 3b8d4fff00195aa4792d649902e68bcd, type: 2} + - target: {fileID: -7511558181221131132, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: 525bac3f393fa1349a1508822fb6abb0, type: 2} + - target: {fileID: 919132149155446097, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} + propertyPath: m_Name + value: Table + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} + propertyPath: m_StaticEditorFlags + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} +--- !u!4 &1204090591 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: aac080cbebbc8d744ad7320f8bb657c9, type: 3} + m_PrefabInstance: {fileID: 1204090590} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1216574280 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1390367066} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UpdateTrackingType: 0 - m_EnableInputTracking: 1 - m_EnableInputActions: 1 - m_ModelPrefab: {fileID: 0} - m_ModelParent: {fileID: 686681832} - m_Model: {fileID: 0} - m_AnimateModel: 0 - m_ModelSelectTransition: - m_ModelDeSelectTransition: - m_PositionAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -3326005586356538449, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RotationAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 5101698808175986029, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_IsTrackedAction: - m_UseReference: 0 - m_Action: - m_Name: Is Tracked - m_Type: 1 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 1 - m_Reference: {fileID: 0} - m_TrackingStateAction: - m_UseReference: 0 - m_Action: - m_Name: Tracking State - m_Type: 0 - m_ExpectedControlType: - m_Id: b71180c0-70dd-45ad-9c7f-85180a861e1c - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_SelectAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 187161793506945269, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_SelectActionValue: - m_UseReference: 1 - m_Action: - m_Name: Select Action Value - m_Type: 0 - m_ExpectedControlType: - m_Id: 183beb27-b26f-4061-8868-236672560d69 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 4766120400929042988, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ActivateAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 83097790271614945, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ActivateActionValue: - m_UseReference: 1 - m_Action: - m_Name: Activate Action Value - m_Type: 0 - m_ExpectedControlType: - m_Id: 657bd760-06f7-4d83-80e9-76b85139bb0d - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -3285721481334498719, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 3279264004350380116, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressActionValue: - m_UseReference: 0 - m_Action: - m_Name: UI Press Action Value - m_Type: 0 - m_ExpectedControlType: - m_Id: bcba2e34-25ae-4ecc-bf14-8997a78e930e - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_UIScrollAction: - m_UseReference: 0 - m_Action: - m_Name: UI Scroll - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_HapticDeviceAction: - m_UseReference: 1 - m_Action: - m_Name: Haptic Device - m_Type: 0 - m_ExpectedControlType: - m_Id: 59ea1b94-e9f8-4049-ab97-5920b11143a5 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -8222252007134549311, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RotateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -5913262927076077117, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_DirectionalAnchorRotationAction: - m_UseReference: 0 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_TranslateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 875253871413052681, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ScaleToggleAction: - m_UseReference: 0 - m_Action: - m_Name: Scale Toggle - m_Type: 1 - m_ExpectedControlType: - m_Id: 8ca72b5b-c2db-4bb5-a0ed-3936b2f58721 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ScaleDeltaAction: - m_UseReference: 0 - m_Action: - m_Name: Scale Delta - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 98b33f76-5007-42f1-82ed-b035914b715c - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ButtonPressPoint: 0.5 ---- !u!43 &1390574009 -Mesh: + serializedVersion: 6 + m_Component: + - component: {fileID: 1216574281} + - component: {fileID: 1216574282} + m_Layer: 0 + m_Name: LightSabre Origin + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1216574281 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1216574280} + m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: 0.4000002, y: 1.18, z: 0.6000003} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1756511964} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1216574282 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1216574280} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: - serializedVersion: 10 - m_SubMeshes: - - serializedVersion: 2 - firstByte: 0 - indexCount: 2532 - topology: 0 - baseVertex: 0 - firstVertex: 0 - vertexCount: 779 - localAABB: - m_Center: {x: 0, y: 0, z: -0.09999999} - m_Extent: {x: 0.19999997, y: 0.19999997, z: 0.09999999} - m_Shapes: - vertices: [] - shapes: [] - channels: [] - fullWeights: [] - m_BindPose: [] - m_BoneNameHashes: - m_RootBoneNameHash: 0 - m_BonesAABB: [] - m_VariableBoneCountWeights: - m_Data: - m_MeshCompression: 0 - m_IsReadable: 0 - m_KeepVertices: 0 - m_KeepIndices: 0 - m_IndexFormat: 0 - m_IndexBuffer: 00000100020003000400050006000700080009000a000b000b000c0009000b000d000c000e000c000d000d000f000e0010000e000f00110010000f001200100011001200110013001400120013001400130015001600140015001600150017001800160017001800170019001a0011000f001b00180019001b0019001c000f001d001a001e001d000f001f001e000f000f0020001f001b001c00210022001b00210023002200210024002300210024002500230021002600240027002800290029002a00270029002b002a0029002c002b002c002d002b002e002a002b002b002f002e002f0030002e00300031002e0032002e00310033003200310033003100340034003500330035003400360037003500360036003800370034003900360034003a00390030003b003c003b003d003c003b003e003d003e003f003d003e0040003f00400041003f0040004200410042004300410042004400430044004500430044004600450046004700450046004800470048004900470048004a00490049004a004b004b004c0049004a004d004b004d004a00480048004e004d0048004f004e0050005100520052005300500052005400530050005300550055005300540054005600550056005700550055005800500055005900580059005a00580059005b005a005b005c005a005c005d005a005c005e005d005e005f005d005e0060005f00600061005f0060006200610062006300610062006400630064003200630065006600670067006600680068006900670066006a0068006a006b0068006b006c0068006b006d006c006b006e006d006e006f006d006f0070006d006f00710070006f00720071007200730071007200740073007400750073007400760075007700760078007800790077007a00780076007a0076007b007b007c007a007d007a007c007d007c007e007e007f007d007d007f008000800081007d0080008200810082008300810082008400830084008500830083008600810086008700810085008800830088008900830085008a0088008a008b0088008b008c0088008b008d008c008d008e008c008e008f008c008d0090008e00900091008e0091009000920093008e0091009100940093009500960097009700980095009800990095009a009900980098009b009a009b009c009a009b009d009c009d009e009c009d009f009e009b00a0009d009b00a100a0009d00a2009f009d00a300a200a200a4009f00a200a500a400a200a600a500a600a700a500a600a800a700a600a900a800a800aa00a700a800ab00aa00ac00aa00ab00ad00a700aa00aa00ae00ad00af00b000b100b100b200af00b200b300af00b200b400b300b400b500b300b400b600b500b700b800b900ba00bb00bc00bd00be00bf00c000c100c200c300c400c500c600c700c800c900ca00cb00cc00cd00ce00cf00d000d100cf00d100d200d200d300cf00d300d200d400d300d400d500d500d400d600d500d600d700d500d700d800d900cf00d300d500d900d300da00d500d800da00d800db00db00dc00da00db00dd00dc00db00de00dd00d500da00df00da00e000df00d500df00e100d500e100d900d900e200cf00cf00e200e300e400e200d900e100e400d900e400e500e200e600e100df00e100e600e400e600df00e700e800e600e700e800e900e600e400e600e900e900e800ea00e900ea00eb00ec00e900eb00e500e400ed00e400e900ed00ec00ed00e900e500ed00ee00ed00ec00ef00ed00ef00ee00f000f100f200f000f300f100f300f000f400f500f300f400f400f000f600f400f600f700f400f800f500f400f700f900fa00f800f400f400f900fa00fa00fb00f800f900fc00fa00fb00fa00fc00f900fd00fc00fe00fb00fc00ff00fe00fc000001ff00fc00fc00fd00010102010001fc000301fc000101fc000301020103010101040105010301040106010201030105010701030106010301070108010601070108010701090109010a0108010b010a0109010b0109010c010d010e010f010d010f01100111010d011001110112010d01110113011201110114011301150113011401160115011401170111011001170114011101180110010f01170110011801160114011901170119011401160119011a0116011a011b01190117011c0119011c011a0118011c0117011c011d011a0118010f011e011e010f011f011e011f01200121011e012001220118011e01210122011e01180123011c012201230118012101240122012301220124012101250124011c0126011d0126011c0123012301240127012601230127012701240128012701280129012a01270129012a01260127012a011d0126012a012b011d012c012d012e012c012e012f0130012c012f01300131012c01300132013101300133013201340133013001340130012f0134013501330136012f012e0134012f01360136012e01370136013701380139013501340139013a0135013b0134013601360138013b013b01390134013b0138013c013d013c0138013d013e013c013c013e013f0140013c013f013b013c0140013b01410139013b014001410140014201410140014301420140013f014301390141014401390144013a014201440141013a01440145013a014501460144014701450142014701440148014701420149014801420142014a0149014b014a0142014b01420143014b0143013f014c014b013f014d014c013f014e014d013f014f014e013f013f0150014f0151015201530153015401510151015401550151015501560151015601570156015501580158015901560158015a0159015a015b0159015a015c015b015d015e015f015f0160015d01600161015d0160016201610160016301620162016301640164016501620165016401660165016601670165016701680165016801690169016a01650169016b016a0169016c016b016b016c016d016e016b016d016d016f016e016f0170016e01700171016e016f0172017001700172017301730174017001730175017401730176017501770178017901770179017a017b0177017a017b017c0177017b017d017c017b017e017d017f017d017e0180017f017e0181017b017a0181017e017b0182017a01790181017a01820180017e018301810183017e01800183018401800184018501830181018601830186018401820186018101860187018401820179018801880179018901880189018a018b0188018a018c01820188018b018c01880182018d0186018c018d0182018b018e018c018d018c018e018b018f018e01860190018701900186018d018d018e01910190018d01910191018e0192019101920193019401910193019401900191019401870190019401950187019601970198019601980199019a01960199019a019b0196019a019c019b019a019d019c019e019d019a019e019a0199019e019f019d01a001990198019e019901a001a0019801a101a001a101a201a3019f019e01a301a4019f01a5019e01a001a001a201a501a501a3019e01a501a201a601a701a601a201a701a801a601a601a801a901a501a601aa01aa01a601a901a501ab01a301a501aa01ab01a301ac01a401a301ab01ac01aa01ad01ab01ad01ac01ab01a401ac01ae01a401ae01af01ac01b001ae01ad01b001ac01aa01a901b101aa01b101ad01b201b001ad01b101b201ad01b201b301b001b101b401b201b401b101a901b401a901b501b601b701b801b901b601b801b801ba01b901bb01b901ba01bb01bc01b901bd01bc01bb01be01bd01bb01bf01be01bb01bb01c001bf01c101bf01c001c001c201c101c301c001bb01ba01c301bb01ba01b801c401b801c501c401ba01c401c601ba01c601c301c301c701c001c001c701c801c901c701c301c601c901c301c901ca01c701cb01c601c401c601cb01c901cb01c401cc01cd01cb01cc01cd01ce01cb01c901cb01ce01c901ce01cf01cf01ca01c901cf01d001ca01d101d201d301d101d301d401d501d101d401d501d601d101d501d701d601d501d801d701d401d901d501d801d501d901d401da01d901da01d401d301d901db01d801d301dc01da01dd01dc01d301dd01d301de01df01d801db01db01e001df01e001e101df01e101e201df01e201e301df01e401df01e301e401e301e501e201e601e301e301e701e501e801e301e601e301e801e701e601e901e801e801ea01e701e901eb01e801e801ec01ea01e801eb01ec01ed01ee01ef01ed01ef01f001ed01f001f101ed01f101f201f101f301f201f101f401f301f001ef01f501f501f601f001f601f101f001ef01f701f501f801f701ef01f801f901f701f601fa01f101f101fa01fb01f101fb01fc01f101fc01fd01f401f101fd01f401fd01fe01fe01ff01f401fe010002ff01fe01010200020202f401ff0100020202ff0102020302f401000204020202000205020402000206020502060200020102010207020602080209020a020a020b0208020b020a020c020c020a020d020e0208020b020e020f0208020f020e021002100211020f0212020e020b02120210020e020b020c02130212020b021302100214021102140215021102140216021502140217021602180217021402180214021902180219021a021a021b0218021a021c021b021d0213020c021d020c021e021d021e021f021d021f022002210213021d0221021d022002210212021302210220022202220223022102220224022302210223022502210225021202120225021002250226021002270228022902270229022a022b0227022a022b022c0227022b022d022c022b022e022d022f022d022e0230022f022e0231022b022a0231022e022b0232022a02290231022a02320230022e023302310233022e02300233023402300234023502330231023602330236023402320236023102360237023402320229023802380229023902380239023a023b0238023a023c02320238023b023c02380232023d0236023c023d0232023b023e023c023d023c023e023b023f023e02360240023702400236023d023d023e02410240023d02410241023e0242024102420243024402410243024402400241024402370240024402450237024602470248024602480249024a024602490249024b024a024c024a024b024c024b024d024c024d024e024f024e024d024f0250024e024e0251024c024e02500252024e025302510253024e025202530254025102530255025402530256025502570256025302530252025802590258025202590252025a02580259025b02530258025c0258025b025c02570253025d0253025c025d0257025d025e025c025e025d025e025f0257025e0260025f02610260025e0261025e0262025e02630262025c0263025e025b0263025c025b0264026302650266026702650267026802650268026902650269026a026a0269026b026a026b026c026d026b02690268026d026902680267026e0267026f026e0268026e027002680270026d026d0271026b026b0271027202730271026d02700273026d02730274027102750270026e0270027502730275026e02760277027502760277027802750273027502780273027802790279027402730279027a0274027b027c027d027b027d027e027b027e027f027b027f0280027f02810280027f02820281027e027d028302830284027e0284027f027e02840285027f027f028502860282027f0286028602870282028702880282028702890288027d028a0283027d028b028a028b027d028c028c027d028d028c028d028e028c028f028b028c028e02900291028f028c028c0290029102910292028f0290029302910292029102930290029402930295029202930293029402960293029702950296029702930296029802970299029a029b029c029a0299029d029a029c029d029e029a029e029d029f029e029f02a0029f02a102a0029f02a202a102a2029f02a3029d02a3029f02a202a302a402a302a502a402a302a602a502a602a302a7029d02a702a302a602a702a802a702a902a802aa02a7029d02aa029d029c02a702aa02a902ab02aa029c02ab02a902aa02ab029c02ac029c029902ac02ab02ad02a902ad02ae02a902af02ad02ab02af02ab02ac02af02b002ad02b102ac029902af02ac02b102b1029902b202b102b202b302b102b302b402af02b102b402af02b402b502b502b002af02b502b602b002b702b802b902ba02b702b902b902bb02ba02bc02ba02bb02bb02b902bd02bb02bd02be02bc02bf02ba02bb02be02c002bb02c002bc02c102bf02bc02c202c102bc02c302c202bc02c002c402bc02bc02c402c302c002c502c402c602c302c402c402c702c602c802c602c702c802c702c902c802c902ca02ca02cb02c802cc02ca02c902cc02cd02ca02ce02cb02ca02ca02cd02cf02ce02ca02cf02d002ce02cf02d102d002cf02cf02d202d102d302d402d502d302d502d602d702d302d602d702d802d302d702d902d802d702da02d902db02d902da02dc02db02da02dd02d702d602dd02da02d702de02d602d502dd02d602de02dc02da02df02dd02df02da02dc02df02e002dc02e002e102df02dd02e202df02e202e002de02e202dd02e202e302e002de02d502e402e402d502e502e402e502e602e702e402e602e802de02e402e702e802e402de02e902e202e802e902de02e702ea02e802e902e802ea02e702eb02ea02e202ec02e302ec02e202e902e902ea02ed02ec02e902ed02ed02ea02ee02ed02ee02ef02f002ed02ef02f002ec02ed02f002e302ec02f002f102e302f202f302f402f202f402f502f202f502f602f202f602f702f702f602f802f702f802f902fa02f802f602f502fa02f602f502f402fb02f402fc02fb02f502fb02fd02f502fd02fa02fe02fd02fb02fe02fa02fd02fb02ff02fe02fe020003fa02fa020103f8020103fa020003f80201030203000303030103040301030303030305030403050306030403060307030403070308030403040308030903040309030a03 - m_VertexData: - serializedVersion: 3 - m_VertexCount: 779 - m_Channels: - - stream: 0 - offset: 0 - format: 0 - dimension: 3 - - stream: 0 - offset: 12 - format: 0 - dimension: 3 - - stream: 0 - offset: 24 - format: 0 - dimension: 4 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 40 - format: 0 - dimension: 2 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - m_DataSize: 37392 - _typelessdata: 77562f3bcecc4cbd0ad723be000000000000803f00000000000000000000803f00000000000080bf0b98ec3e00ab133f54562f3b989919be0ad723be000000000000803f000000000000803f0000000000000000000080bf5005083f5a07023f54562f3bcecc4c3d0ad723be000000000000803f000000000000803f0000000000000000000080bf7325c93ea64e253f6b562fbbcccc4c3d0ad723be000000000000803f00000000000000000000803f000000000000803f3242c73ede5b243f60562fbb9999193e0ad723be000000000000803f00000000000080bf00000000000000000000803f9bcfa33e84ff353f60562fbbcecc4cbd0ad723be000000000000803f00000000000080bf00000000000000000000803fcab4ea3e37b8123fcecc4c3d0ad723be5d562fbb000000000000803f00000000000000000000803f00000000000080bf4247a33ef3efa83e999919be0ad723be5d562fbb000000000000803f00000000000000000000803f00000000000080bf0ae0a63e36e2ef3ececc4cbd0ad723be6d562fbb000000000000803f00000000eea07ebf00000000e8b2d3bd000080bfa613a53e1469cc3e235b21be235b213e37b088bb54e524bf496a423f4a4bbbbdb877acbcc9b6d03d2f9c7e3f000080bfdd683c3e6d37253f0ad723bec33d1f3e6eca8abb267f73bfeaeb9c3e9a2c17bd1663ecbbcb97c73d50c67e3f000080bfb6443c3eeff3253f0ad723be78c31f3e000000001b807dbff0b80d3e248888bcec4b3bbb5386cb3d50bb7e3f000080bf6085403ef8ec253f27731ebe0ad7233e639e83bbf8b9babecaff6d3f341754bdaf66afbb69335b3d25a17f3f000080bfa2a73c3ec05a243fa7081fbe0ad7233e00000000b1527bbd08827f3f2bbb0ebce17549bb5be70b3c4efd7f3f000080bf6aab403e6f80243f999919be0ad7233e74562fbb000000000000803f000000006f0b473c000000002afb7f3f000080bfd4fe3d3e753b233f672c1d3e0ad7233e00000000668ee83d1c587e3f000000002639873c8047f7baf4f67f3f000080bf6aab403eb228b63ecccc4cbd0ad7233e74562fbb000000000000803f000000004015473c000000002afb7f3f000080bfd4fe3d3e91740b3fcbcc4c3d0ad7233e74562fbb000000000000803f000000005ce4463c000000002cfb7f3f000080bfd4fe3d3e5a5be73e07d723bd0ad7233e0e77b4bb000000000000803f000000009424473c000000002afb7f3f000080bf342a3b3ec811093f06d7233d0ad7233e0e77b4bb000000000000803f000000004202473c000000002afb7f3f000080bf342a3b3e8b18ec3e54b0d0bc0ad7233e3ae719bc000000000000803f00000000610c473c000000002afb7f3f000080bfd247373ec59a053f54b0d03c0ad7233e3ae719bc000000000000803f00000000a833473c0000000028fb7f3f000080bfd247373e11fbf23e2de719bc0ad7233e5cb0d0bc000000000000803f000000005c17473c000000002afb7f3f000080bffc34273e07bc013f23e7193c0ad7233e5cb0d0bc000000000000803f000000003814473c000000002afb7f3f000080bffc34273ef888fa3efd76b4bb0ad7233e07d723bd000000000000803f00000000e20b473c000000002afb7f3f000080bf49b0183ebdc4003ff376b43b0ad7233e07d723bd000000000000803f000000000b0c473c000000002afb7f3f000080bf49b0183e934cfc3e9999193e0ad7233e74562fbb000000000000803f0000000010f6463c000000002cfb7f3f000080bfd4fe3d3e92cdb73e66562fbb0ad7233ececc4cbd000000000000803f00000000f510473c000000002afb7f3f000080bf80b10e3ef810003f59562f3b0ad7233ececc4cbd000000000000803f000000008c16473c000000002afb7f3f000080bf80b10e3e8896fd3e672c1d3e0ad7233eb01a70bbee55fd3e5f775e3f00000000a6048b3ced4e1ebc81f37f3f000080bff5013d3e4723b63ef558203ef558203e62d46dbb67733d3fec2c2c3f000000004cff9a3c8a8caabc11e67f3f000080bf3eea3c3e1531b53e0ad7233e2b811c3e1cfb63bbe3ad543f8f7d0e3f00000000f9b77d3c3159bdbca3e67f3f000080bfd5ec3c3ec126b43e0ad7233e2b811c3e00000000b2887d3f46ca0d3e00000000f9d7523b0b81bcbc4fee7f3f000080bff666403ee62bb43e74562f3b0ad7233e989919be000000000000803f000000008615473c000000002afb7f3f000080bfb0f62a3d9a02fd3e66562fbb0ad7233e999919be000000000000803f00000000b421473c000000002afb7f3f000080bfb0f62a3d018eff3e9e7289bb0ad7233ed4171fbed13ca5bc263d7e3f793aecbdf7aad0bd5ddde63d03077d3f000080bf3484153d801f003f628091b90ad7233e64cb1fbe72db2cbd8d8c643f0da6e5bea064d2bcfa47e53e4acd643f000080bf20c7123d2461fe3e24678bbbcde5223ef83220be5015b0bddfd72e3f0fb139bf4d974fbe9069333f16152f3f000080bf880f113d9034003fa9ec933b0ad7233ec73f20be0ec12cbd5daf633fbb0ee9be291402bcdf1ae93e72eb633f000080bfb000113d2319fc3e6fe889bbdb6c213edb6c21be72ac91bd2c0f233f828244bfb02a173fe1e417bfb60b0cbf000080bfad8fa03e0713373f24678bbbcde5223ef83220be5015b0bddfd72e3f0fb139bf9421163f3dca0dbf414d17bf000080bf1209a03ee451373f628091b90ad7233e64cb1fbe72db2cbd8d8c643f0da6e5bebe721b3f03ccaabed89a38bf000080bfb61ca13ee22f383f606284bbca881e3e0ad723bef1d71abdc954ad3e81b070bfc0a02c3f968a2fbf1d4c8cbe000080bf169fa13e329b363fdb078d3b0a7d1f3e0ad723bee4b63fbd7e9bd63efb1d68bf58fe293f5b402abf81f5aebe000080bf1a3ca43edc3f383fa9ec933b0ad7233ec73f20be0ec12cbd5daf633fbb0ee9bef9371b3f24bcadbeaa1c38bf000080bf79cda23e4d09393f33d2913bcddf213eccdf21bebebb91bd1f0f233f5f8244bf554b173f15d017bf03ff0bbf000080bfe175a33eb3af383f60562fbb9999193e0ad723be0000000000000000000080bf0f96343f947335bf00000000000080bf9bcfa33e84ff353f77562f3b9999193e0ad723be0000000000000000000080bf0a96343f987335bf00000000000080bfdcb2a53e4df2363f54562f3bcecc4c3d0ad723be0000000000000000000080bf8495343f207435bf00000000000080bf7325c93ea64e253f54562f3b989919be0ad723be0000000000000000000080bf1596343f8f7335bf00000000000080bf5005083f5a07023f60562fbbcecc4cbd0ad723be0000000000000000000080bfdf95343fc27335bf00000000000080bfcab4ea3e37b8123f6b562fbb999919be0ad723be0000000000000000000080bf1396343f917335bf00000000000080bfb013073f9114013f5062843bc9881ebe0ad723be76a3293d53e4bdbe68816dbfa2622c3fc4f52cbf48ad993e000080bf931d093fac6b013fc3078dbb097d1fbe0ad723be97b1233d003db7be22d36ebf019d2a3f67a32fbf4860953e000080bf11cf073f058eff3e16c890390ad723be6ccb1fbe86e02a3deb3b65bfaeece2bedbaa1b3f9690a8becbee383f000080bfb45e093fd9adff3e1cd291bbcddf21beccdf21be1eab913d010f23bfaa8244bf542b173faee417bf3b0b0c3f000080bf2e32083f56aefe3e93ec93bb0ad723bec73f20be191cdc3c59e774bf677894befac2233fc56953bebc893d3f000080bf6286083f22fbfd3e05678b3bb9e522be073320be14319f3dda5928bff7d33fbfe4b2163fe38913bf511d113f000080bf92e8093ffdb4003f65e8893bda6c21bedb6c21be37c3913dec0e23bf738244bff001173fbffc17bfc51d0c3f000080bf48a5093fd7f3003feb76b43b0ad7233d0ad723be0000000000000000000080bf9095343f117435bf00000000000080bfaab0cd3e940b243f77562f3bcecc4cbd0ad723be0000000000000000000080bff695343fac7335bf00000000000080bf0b98ec3e00ab133f1877b43b06d723bd0ad723be0000000000000000000080bfff95343fa47335bf00000000000080bf570cea3e0fef153f21e7193c57b0d03c0ad723be0000000000000000000080bf0e96343f947335bf00000000000080bfbf35d43efe2b223f3ae7193c5cb0d0bc0ad723be0000000000000000000080bfb295343ff17335bf00000000000080bf3345e63e4c2f193f54b0d03c2de7193c0ad723be0000000000000000000080bffc95343fa87335bf00000000000080bf6495df3e792f223f5cb0d03c3ae719bc0ad723be0000000000000000000080bfea95343fb87335bf00000000000080bf3d3ee63e1fdf1e3f04d7233d0677b43b0ad723be0000000000000000000080bf1096343f927335bf00000000000080bfde15e63e0b13243f07d7233d0e77b4bb0ad723be0000000000000000000080bf1f96343f837335bf00000000000080bf68fde93ea821223fcbcc4c3d6b562f3b0ad723be0000000000000000000080bfdf95343fc47335bf00000000000080bffc9dea3ee558253fcecc4c3d6d562fbb0ad723be0000000000000000000080bfc195343fe17335bf00000000000080bf8e83ec3e4567243f9899193e60562f3b0ad723be0000000000000000000080bfd795343fcb7335bf00000000000080bfa4f2063f3012373f9999193e77562fbb0ad723be0000000000000000000080bfb195343ff17335bf00000000000080bf6de5073f9020363fd18d1d3e2600773b0ad723beb7e1e93ece0f503db15b63bfdca62a3f9d3d2ebfe19d9b3e000080bf646f073fc4f2373f87751d3e0e4875bb0ad723be3a6ddc3eba1d71bd969166bf2ba1273fc9992abf7e8eb63e000080bf08c0083f5e9b363faefb1d3e151886320ad723be3103293f320a38bca44140bf50c3093fcac130bf8f80f73e000080bf522d083f985b373f0ad7233efc4775bb87751dbe474a5a3fc7f090bde38004bf0ab9cc3efb980cbf87db3b3f000080bf6ad9093f19b6373f72a5203e465c78bb71a520be9f2e343f45c2c4bd8c2e34bf18e10c3f96830dbf3732203f000080bfb64e093f7726373f0ad7233efdfb8932aefb1dbe980d7c3fb799deba661c33be539f063e7a0527bf86113f3f000080bf992f093f1b5f383f0ad7233e1300773bd08d1dbef820593f82cf6f3d6ec806bfc4c9e23e9e9e1fbf1dec243f000080bf9784083f4c09393fbeb1203ef00d7a3bc0b120be1576343f51bba03df17534bf7216193f2ba719bf38fb073f000080bfc2f7073f0580383fd38d1dbe530077bb0ad723bec716ddbeacae44bd319366bf78dc2c3f9ae32dbf5f3593be000080bf75fba43e1914003fc1b120be1b0e7abbc1b120bead7734bf7bd69fbd877734bf6202193ff8b819bfaffd07bf000080bfb8eaa33eb10dff3e0ad723be410077bbd28d1dbedb4a5abf567b6cbdd5e904bfd880df3e79ea1fbf16c125bf000080bf0ed1a23e23fbfd3eb1fb1dbe151886320ad723beb5f228bf1aefd13bd55340bfbe4c0a3f5add30bf11fef5be000080bf967fa33e46ab003f0ad723befcfb8932b0fb1dbe990a7cbf5d49433b675b33be9708063e5ae926bfb7303fbf000080bf0a7ba13e864fff3e8b751dbe2048753b0ad723be68ece6beab987c3debef63bf3d57253f187d2abfa31fbfbe000080bf2c5aa23e806b013f0ad723be0f48753b89751dbee0e058bfe968933d87c206bf526cd03eab7b0cbf76ec3abf000080bf6827a03ec450003f73a520be555c783b72a520be092e34bf820fc53dd42d34bfb3e80c3ff26d0dbfa43e20bf000080bfd03ca13e67e0003f999919be6d562fbb0ad723be0000000000000000000080bf2796343f7c7335bf00000000000080bff4f4a53eadf4003f999919be6b562f3b0ad723be0000000000000000000080bf1896343f8b7335bf00000000000080bf620fa43e4ee6013fcccc4cbd77562fbb0ad723be0000000000000000000080bfdf95343fc37335bf00000000000080bf413cc93ef9ad123fcecc4cbd60562f3b0ad723be0000000000000000000080bfd595343fcd7335bf00000000000080bfaf56c73e999f133f09d723bdfd76b43b0ad723be0000000000000000000080bfd095343fd17335bf00000000000080bfd4dcc93e35e5153f05d723bd1877b4bb0ad723be0000000000000000000080bfe895343fba7335bf00000000000080bf5fc4cd3ed3f3133f57b0d0bc2de7193c0ad723be0000000000000000000080bf0e96343f947335bf00000000000080bf009ccd3ec027193f54b0d0bc3ae719bc0ad723be0000000000000000000080bf0996343f9a7335bf00000000000080bfd844d43e65d7153f2de719bc54b0d03c0ad723be0000000000000000000080bfbf95343fe27335bf00000000000080bf0a95cd3e92d71e3f2be719bc5cb0d0bc0ad723be0000000000000000000080bf1d96343f857335bf00000000000080bf7da4df3ee0da153f0677b4bb05d7233d0ad723be0000000000000000000080bff195343fb27335bf00000000000080bfe6cdc93ecf17223ff576b4bb0ad723bd0ad723be0000000000000000000080bf3596343f6e7335bf00000000000080bf9229e63e4afb133f6b562fbbcccc4c3d0ad723be0000000000000000000080bffc95343fa77335bf00000000000080bf3242c73ede5b243f05678b3bb9e522be073320be14319f3dda5928bff7d33fbfae3e06bf5bbd1c3f8f7b17bf000080bf74ebf03efcd3b83e5572893b0ad723becd171fbe824ea53cc53c7ebf4154ecbdbec494be8e3ed63d997c73bf000080bf575df03e802cb93e16c890390ad723be6ccb1fbe86e02a3deb3b65bfaeece2be03d390bda132e13e993165bf000080bffec6f03e5290ba3e60562fbb0ad723be989919be00000000000080bf000000000000000000000000000080bf000080bf15cfed3e7b9cbb3e93ec93bb0ad723bec73f20be191cdc3c59e774bf677894be7e2809bc9368943e130075bf000080bfce15f13e5743bc3e5d562f3b0ad723be999919be00000000000080bf000000000000000000000000000080bf000080bf74b6ed3e90b6b93e6d562f3b0ad723becbcc4cbd00000000000080bf000000000000000000000000000080bf000080bf2ec4bb3e97b8b93e6b562fbb0ad723bececc4cbd00000000000080bf000000000000000000000000000080bf000080bfd2dcbb3e839ebb3e0677b4bb0ad723be06d723bd00000000000080bf000000000000000000000000000080bf000080bf3aebb63ee39fbc3e0677b43b0ad723be07d723bd00000000000080bf000000000000000000000000000080bf000080bf84b8b63ea0b7b83e38e7193c0ad723be54b0d0bc00000000000080bf000000000000000000000000000080bf000080bf6265af3e0357b73e2de719bc0ad723be5cb0d0bc00000000000080bf000000000000000000000000000080bf000080bfe1bbaf3e1601be3e57b0d0bc0ad723be38e719bc00000000000080bf000000000000000000000000000080bf000080bfbafda73ec4b5c33e5cb0d03c0ad723be23e719bc00000000000080bf000000000000000000000000000080bf000080bf2913a73efda2b13e0ad723bd0ad723be0677b4bb00000000000080bf000000000000000000000000000080bf000080bfb54fa63ee8dcc83e06d7233d0ad723befd76b4bb00000000000080bf000000000000000000000000000080bf000080bf65dfa43e027cac3ececc4cbd0ad723be6d562fbb00000000000080bf000000000000000000000000000080bf000080bfa613a53e1469cc3ececc4c3d0ad723be5d562fbb00000000000080bf000000000000000000000000000080bf000080bf4247a33ef3efa83e999919be0ad723be5d562fbb00000000000080bf000000000000000000000000000080bf000080bf0ae0a63e36e2ef3e6c2c1dbe0ad723be00000000835d95bd77517fbf000000000000000000000000000080bf000080bf059aa53e2c1ff13e6c2c1dbe0ad723bede1a70bb3755fdbe94775ebf000000000000000000000000000080bf000080bf786ea73e191ff13e9e081f3e0ad723be000000004e4f0f3ef56d7dbfc2c5a2bc334405bd13467d3c77d57fbf000080bf5a0ca03e0195833e9899193e0ad723be6d562fbb00000000000080bf000000000000000000000000000080bf000080bfde7aa13ed376853e20731e3e0ad723be1d9e83bb38bbba3e88ff6dbfde1754bd256915bd022d293d6d9c7fbf000080bf8e10a23eb6c8833e0ad7233e71c31fbe00000000ba917f3f18cf6bbd5f2be3bb56c7a4bb5dca073d25db7fbf000080bf1209a03e7d83803e1e5b213e205b21befaaf88bb5ae5243f446a42bfac4bbbbd7eac84bd4e0e853d96eb7ebf000080bf7022a23e0dec813e0ad7233ebd3d1fbe37ca8abbf27e733f32ed9cbe5b2d17bd2a47eabc8246013d88c47fbf000080bffc28a23e6055803e0ad7233e999919be77562fbb0000803f00000000000000000000000000000000000080bf000080bfde7aa13e78c87c3e0ad7233e2b811c3e00000000b2887d3f46ca0d3e000000000000000000000000000080bf000080bf0297a53e08111d3d0ad7233ececc4cbd6d562fbb0000803f00000000000000000000000000000000000080bf000080bf4247a33e0647363e0ad7233ecccc4c3d77562fbb0000803f00000000000000000000000000000000000080bf000080bfa613a53e248bdf3d0ad7233e07d723bd0e77b4bb0000803f00000000000000000000000000000000000080bf000080bf65dfa43ef6392f3e0ad7233e5cb0d0bc3ae719bc0000803f00000000000000000000000000000000000080bf000080bf2913a73e12fc243e0ad7233e9999193e6d562fbb0000803f00000000000000000000000000000000000080bf000080bf0ae0a63e7810253d0ad7233e2b811c3e1cfb63bbe3ad543f8f7d0e3f000000000000000000000000000080bf000080bfce53a73e74101d3d0ad7233e54b0d03c3ae719bc0000803f00000000000000000000000000000000000080bf000080bfbafda73efb0f013e0ad7233e05d7233d1877b4bb0000803f00000000000000000000000000000000000080bf000080bfb54fa63ecca4ed3d0ad7233e3ae719bc5cb0d0bc0000803f00000000000000000000000000000000000080bf000080bf6265af3edaa4193e0ad7233e1877b4bb06d723bd0000803f00000000000000000000000000000000000080bf000080bf84b8b63ed4e6163e0ad7233e2de7193c5cb0d0bc0000803f00000000000000000000000000000000000080bf000080bfe1bbaf3ee5650c3e0ad7233e77562fbbcecc4cbd0000803f00000000000000000000000000000000000080bf000080bf2ec4bb3e46e7143e0ad7233e60562f3bcecc4cbd0000803f00000000000000000000000000000000000080bf000080bfd1dcbb3e7921113e0ad7233efd76b43b07d723bd0000803f00000000000000000000000000000000000080bf000080bf3aebb63ebc220f3e0ad7233e6d562fbb989919be0000803f00000000000000000000000000000000000080bf000080bf72b6ed3e36e3143e0ad7233efdfb8932aefb1dbe980d7c3fb799deba661c33be6f1c33be00000000b00d7cbf000080bf12e6ef3e2200133e0ad7233efc4775bb87751dbe474a5a3fc7f090bde38004bf100e04bfae492e3d6d0a5bbf000080bf6893ef3eb1a3153e0ad7233e6b562f3b999919be0000803f00000000000000000000000000000000000080bf000080bf16cfed3e681d113e0ad7233e1300773bd08d1dbef820593f82cf6f3d6ec806bf567506bffd9315bd3fa559bf000080bfd6c1ef3ee257103ef85820bef75820be9ed46dbb78733dbfdc2c2cbf0000000075cb01bd75d10e3d39b77f3f000080bf789b2d3faae97e3e6c2c1dbe0ad723bede1a70bb3755fdbe94775ebf0000000022701fbd188fb53c39be7f3f000080bf018c2d3f73c1813e6c2c1dbe0ad723be00000000835d95bd77517fbf00000000268f0bbd094a233bbed97f3f000080bf02762e3f87d7813e0ad723be2e811cbe00000000a6cd7fbfe58620bd00000000ea5f03bb3459513d37aa7f3f000080bfd6912e3f98057a3e0ad723be2e811cbe52fb63bb4efc5ebfc680fbbe000000009abacdbcd366363d4daa7f3f000080bfa5b32d3fa9db793e0ad723be989919be59562fbb000080bf0000000000000000000000006ea7873d13707f3f000080bff4e62d3f3fe2773e0ad723be78c31f3e000000001b807dbff0b80d3e248888bc262bf2bb21c4893dc2697f3f000080bfd6912e3fd87ff73c0ad723bececc4cbd6d562fbb000080bf00000000000000000000000096a5873d17707f3f000080bff4e62d3f16f3303e0ad723bececc4c3d59562fbb000080bf000000000000000000000000a2ab873d0b707f3f000080bff4e62d3fd407d43d0ad723be0ad723bd0677b4bb000080bf000000000000000000000000e6a2873d1d707f3f000080bf13322d3f09b9293e0ad723be5cb0d0bc36e719bc000080bf0000000000000000000000001da6873d17707f3f000080bfdc392c3f853c1f3e0ad723be9999193e6d562fbb000080bf000000000000000000000000bfa5873d17707f3f000080bff4e62d3f00530c3d0ad723bec33d1f3e6eca8abb267f73bfeaeb9c3e9a2c17bd50cb80bc370a923d0c517f3f000080bf4e832d3f60ccf83c0ad723be57b0d03c23e719bc000080bf0000000000000000000000002ea4873d1b707f3f000080bfdc392c3f0e31f63d0ad723be09d7233df376b4bb000080bf0000000000000000000000006c0f873d56717f3f000080bf13322d3f68f3e13d0ad723be36e719bc5cb0d0bc000080bf0000000000000000000000005ca5873d17707f3f000080bfbb36283f7712133e0ad723be0677b4bb0ad723bd000080bf000000000000000000000000bba5873d17707f3f000080bffc96243fafa10f3e0ad723be2de7193c54b0d0bc000080bf00000000000000000000000031bd873de56f7f3f000080bfbc36283fe6be053e0ad723be6d562fbbcecc4cbd000080bf0000000000000000000000005fa5873d17707f3f000080bf4518223fe4260d3e0ad723be66562f3bcbcc4cbd000080bf00000000000000000000000025a5873d19707f3f000080bf4518223f385b093e0ad723befd76b43b06d723bd000080bf000000000000000000000000cc95873d39707f3f000080bffc96243f82d1073e0ad723befcfb8932b0fb1dbe990a7cbf5d49433b675b33bed3bd32bef7d88a3dbe787b3f000080bfbe13083f0f58063e0ad723be60562f3b989919be000080bf00000000000000000000000003a6873d17707f3f000080bf2425093fd3a5043e0ad723be0f48753b89751dbee0e058bfe968933d87c206bf083304bf7cb8f83d3602593f000080bf6e34083f97b6033e0ad723be74562fbb999919be000080bf0000000000000000000000009fa5873d17707f3f000080bf2425093f8071083e0ad723be410077bbd28d1dbedb4a5abf567b6cbdd5e904bf0f8d05bf1e602d3d77225a3f000080bf832e083f8609093ea7081fbe0ad7233e0000000000000000000000000000803f000000000000803f00000000000080bf1209a03e203a963b0ad723be78c31f3e0000000000000000000000000000803f000000000000803f00000000000080bf670b9e3e000000000ad723be2e811cbe0000000000000000000000000000803f000000000000803f00000000000080bf0048e53b000000006c2c1dbe0ad723be0000000000000000000000000000803f000000000000803f00000000000080bf00000000a05fd03b672c1d3e0ad7233e0000000000000000000000000000803f000000000000803f00000000000080bf1209a03e91c79c3e9e081f3e0ad723be0000000000000000000000000000803f000000000000803f00000000000080bf0000000025b09d3e0ad7233e2b811c3e0000000000000000000000000000803f000000000000803f00000000000080bfef739c3e1209a03e0ad7233e71c31fbe0000000000000000000000000000803f000000000000803f00000000000080bf40d77e3b1209a03ecbcc4c3d6b562f3b0ad723be00000000000000000000803f0a5835bfb4b134bf000000000000803fde755b3e12efe43e04d7233d0677b43b0ad723be00000000000000000000803f0a5835bfb4b134bf000000000000803f53b35b3e9666e03e54b0d03c2de7193c0ad723be00000000000000000000803f0a5835bfb4b134bf000000000000803f8a0e5c3e91e5d93e57b0d0bc2de7193c0ad723be00000000000000000000803ff3672e3f3f663bbf000000000000803f03f3863e79973b3f09d723bdfd76b43b0ad723be00000000000000000000803ff3672e3f3d663bbf000000000000803fd1488a3e90c9383fcecc4cbd60562f3b0ad723be00000000000000000000803ff3672e3f3d663bbf000000000000803fce9c8c3e8dd5363f0ad723be57b0d03c23e719bc0000803f000000000000000000000000000000000000803f0000803fb837793f62e9d53e0ad723be09d7233df376b4bb0000803f000000000000000000000000000000000000803f0000803f3ca6763f69c6d03e0ad723bececc4c3d59562fbb0000803f000000000000000000000000000000000000803f0000803f96e1743f1c3dcd3e6b562fbb0ad723bececc4cbd000000000000803f000000000000000000000000000080bf0000803fd2dcbb3e839ebb3e0677b4bb0ad723be06d723bd000000000000803f000000000000000000000000000080bf0000803f3aebb63ee39fbc3e2de719bc0ad723be5cb0d0bc000000000000803f000000000000000000000000000080bf0000803fe1bbaf3e1601be3ecccc4cbd77562fbb0ad723be00000000000000000000803f9f2f8cbea337763f000000000000803fe199563fb2edf83e05d723bd1877b4bb0ad723be00000000000000000000803f9f2f8cbea337763f000000000000803f3623583f47e5f53e54b0d0bc3ae719bc0ad723be00000000000000000000803fa02f8cbea337763f000000000000803f28625a3f0c78f13e0ad723bececc4cbd6d562fbb0000803f00000000000000000000000000000000000080bf000080bff2f8773f3ae3fb3e0ad723be0ad723bd0677b4bb0000803f00000000000000000000000000000000000080bf000080bf5dd6793f588ef83e0ad723be5cb0d0bc36e719bc0000803f00000000000000000000000000000000000080bf000080bfd48b7c3f81b7f33e38e7193c0ad723be54b0d0bc000000000000803f0000000046ec7f3f00000000b3fcc8bc0000803fe4026f3f2cfa5e3c0677b43b0ad723be07d723bd000000000000803f0000000046ec7f3f00000000b4fcc8bc0000803f7b9f6e3ff6f4e33c6d562f3b0ad723becbcc4cbd000000000000803f0000000046ec7f3f00000000b3fcc8bc0000803ff7536e3fd7151a3d5cb0d03c3ae719bc0ad723be00000000000000000000803ff3b4acbefcfe703f000000000000803fd429753f5968603f07d7233d0e77b4bb0ad723be00000000000000000000803ff3b4acbefcfe703f000000000000803ff5c3723fc6845d3fcecc4c3d6d562fbb0ad723be00000000000000000000803ff3b4acbefbfe703f000000000000803f9e1b713f01855b3f9c15323e2bc0573c80b9d5bc026c063f4d723fbf84fdcf3e96198f3e264199be648c69bf000080bfd0dbaf3e1cbcff3d0ad7233e2de7193c5cb0d0bcc779733efa4f48bf4b54133fd0d0993e781301bff0444fbf000080bfe1bbaf3ee5650c3e0ad7233efd76b43b07d723bdc1fb813e458c6ebf10c5843e9f71553e6e1c56be949674bf000080bf3aebb63ebc220f3e0ad7233e60562f3bcecc4cbd3a4b843efd3c77bfab21ba3c0cf7a03debf61ebb11357fbf000080bfd1dcbb3e7921113e992a333e4fe2da3bcfcc4cbd88f80f3f9c8053bfb5b20a3d13e0203dafe468bccfc67fbf000080bf58aabb3e53b0033e0ad7233e6b562f3b999919be9053843e8f4c77bf484fa2bbf0f498bd489d73bcb4417fbf000080bf16cfed3e681d113e992a333e4fe2da3b989919bef1ed0f3f2b8753bf9aae0bbdfb0f22bdae826a3cf7c57fbf000080bf9c9ced3e43ac033e0ad7233e1300773bd08d1dbea8467f3e7a896ebf6d1a87be414759be9d6b5a3e7d2374bf000080bfd6c1ef3ee257103ebeb1203ef00d7a3bc0b120be0ba6723e94dc71bf5ad467befe863cbe9c953d3eab1e77bf000080bf5158f13e497d123ed18d1d3e2600773b0ad723be7ca8823e80686ebf691c85be8a2b50bec243583efac074bf000080bf02eff23e90b2143eb9f5453e9911cd3ccfcc4cbd6a2e5e3f064afdbeed41383d3084b13c4f2358bd49957fbf000080bf58aabb3ec874d33d9c15323e2bc0573c9c1532be5d30ea3e582743bf546feabe5fc29bbee90ab33e38d762bf000080bf9eb0f93e1ab0ff3d9899193e60562f3b0ad723be4fa6a83ceb3f77bfcd4c84beeebb66bee2417d3e1e3f71bf000080bfc0fbf23e3b35183e9899193e4fe2da3b992a33beb6b20a3d9c8053bf88f80fbfb2b77fbe8ab1093f3f214ebf000080bfee87fa3edb61153ecbcc4c3d4fe2da3b992a33beb2b20abd9d8053bf87f80fbf3be980be69360d3fc4914bbf000080bf5254fc3e1d545c3ecbcc4c3d6b562f3b0ad723be7b29e0bc432d77bfc08584bee0be7ebed1c4833ecc096fbf000080bf24c8f43e7c275f3ec9503f3e7bb9d53c9c1532be55ee4e3f5625d5be4f25d5bebef7a3be929a903e247d67bf000080bf9eb0f93e3c22db3d9d15323e7db9d53cc9503fbe5525d53e5525d5be54ee4ebfcc0012bf19a4123f75b716bf000080bf1d30003fb076ed3db9f5453e9711cd3c989919be6a2e5e3f064afdbeeb4138bda5dab2bc03f8563d0a967fbf000080bf9c9ced3eac6cd33dc9503f3e7db9d53c80b9d5bc54ee4e3f5525d5be5825d53e08e4a33e1dbd90be3c7b67bf000080bfd0dbaf3e402edb3d9c15323e7bb9d53c40c057bc0a29043fb7b5cdbeed9f413fcd790c3f26db05bf04fd26bf000080bf2ea3a93ecc84ed3dcbcc4c3ececc4c3dcbcc4cbd7e487f3fa09758bda697583de3133f3d4600e7bdf9157ebf000080bf8afebb3e7cc5a63db9f5453ececc4c3da011cdbc692e5e3fee4138bd0a4afd3eee81f03ef48e7fbe6fc758bf000080bfeba4af3eee41b03dcbcc4c3ecccc4c3d989919be7e487f3fa39758bd9e9758bdeb2b3fbd0334e63dcc187ebf000080bfcdf0ed3e5cbda63db9f5453ececc4c3d992a33be6a2e5e3feb4138bd064afdbe188af0be002d7f3e62cc58bf000080bfee87fa3ec035b03db9f5453e9899193e992a33be6a2e5e3fea41383d064afdbebd6ff8be4e7a943e852c53bf000080bf5254fc3e70cb8c3ccbcc4c3e9999193e999919be7e487f3fa297583d9f9758bd1d4378bd9a19213ede557cbf000080bf32bdef3ec0d34d3cc9503f3e9c15323e9d1532be54ee4e3f5825d53e5525d5be18740abf05937b3e7cf04dbf000080bf2d59fc3ec006ab3bb9f5453e982a333e989919be692e5e3f064afd3ef04138bde24223bed73e443ee1ea77bf000080bfe44ef03e00000000b9f5453e982a333ecfcc4cbd692e5e3f064afd3eed41383d8f86233eccb844be0de277bf000080bfa15cbe3e00408237cbcc4c3e9999193ecbcc4cbd7e487f3fa397583da397583d575a783d4b9c21be8e507cbf000080bfedcabd3eb0144e3cb9f5453e9899193ea011cdbc692e5e3ff041383d0b4afd3e3869f83e17b594be192453bf000080bf4f71b13e30fc8c3cc9503f3e9c15323e80b9d5bc51ee4e3f5825d53e5a25d53e327c0a3fd00c7cbebae14dbf000080bf5e84b23e00c7ab3b9c15323e7bb9d53c40c057bc0a29043fb7b5cdbeed9f413fcd9e29bf1d373fbfd636633d000080bf05e1d83e2a523b3f0ad7233e2de7193c5cb0d0bcc779733efa4f48bf4b54133fac9029bf366110bf307efcbe000080bfd0b3e33e16d43a3f9c15323e2bc0573c80b9d5bc026c063f4d723fbf84fdcf3ead4e1ebf2fc829bf21dcd7be000080bfc272dd3e4c09393f0ad7233e54b0d03c3ae719bcdb87753e013e0bbf0ddd4d3fa1b133bfa25a2bbfba4879be000080bffc03de3e00ac3d3f992a333ececc4c3d60e2dabbbe09113f0c62f7bcf6ce523fe5a01cbf87502fbf56aaca3e000080bfbe0cd03ea65c3f3f0ad7233e05d7233d1877b4bb5bf4783ec51c82be4aa56f3f20ff34bf8a0735bf74c308bc000080bf05e1d83e7c3d403fc9503f3e7db9d53c80b9d5bc54ee4e3f5525d5be5825d53e9a2e15bfb1992abfc920ee3e000080bf474fd43e4c09393fb9f5453ececc4c3da011cdbc692e5e3fee4138bd0a4afd3e2999cfbe92b523bf2937273f000080bf408fc93ee71d3c3f0ad7233ecccc4c3d77562fbb6451843eec474cbc6948773f29352fbf4c4235bfe424323e000080bfb857d53e2202423fb9f5453e9899193ea011cdbc692e5e3ff041383d0b4afd3e974bc8be16460dbfcf8a3c3f000080bf4932a63e63cc4d3f992a333e9899193e60e2dabb8bf80f3fb7b20a3d9c80533f604f21bf322221bf5cd1e83e000080bfc6afac3e220b513f0ad7233e9999193e6d562fbb154d843eccb3a53c6140773fd69233bf1ef92ebf3cd54e3e000080bfc0fab13e9fb0533f9c15323e9c15323e40c057bcf473ef3e2e75ef3eb801403fe7c407bff3c407bf0b52293f000080bfd09aa43e4575553fc9503f3e9c15323e80b9d5bc51ee4e3f5825d53e5a25d53ea47b86bee772c1be3e49633f000080bf1309a03e662c533f0ad7233e2b811c3e1cfb63bb9c467f3e7c1a873e7a896e3f54ae28bfe3ad28bfcbcbb93e000080bff6f9b03e0331543ff558203ef558203e62d46dbb0e14833e4ead833eb38c6e3f1bae28bf1bae28bfd0cbb93e000080bffcdab03e4575553f672c1d3e0ad7233eb01a70bb731a873eb6467f3e78896e3f16ae28bf1fae28bfd0cbb93e000080bfd4beb03ef59b563f9c15323ec7503f3e80b9d5bc5525d53e51ee4e3f5f25d53ea572c1bed47b86be4449633f000080bf1409a03e23be573f9999193e0ad7233e74562fbb0595a73cf64c843e1440773f98f92ebf8e8f33bf63fc4e3e000080bfc0fab13eeb39573f9899193e982a333e60e2dabbb0b20a3d8bf80f3f9c80533f2d2221bf644f21bf5dd1e83e000080bfc8afac3e68df593f9899193eb9f5453ea011cdbcf741383d672e5e3f124afd3e0d460dbfa44bc8bed38a3c3f000080bf4932a63e271e5d3fcbcc4c3db9f5453ea011cdbcf74138bd662e5e3f144afd3e3ec018bf664dd7be3bf82e3f000080bf408fc93ea2cc6e3fcbcc4c3d0ad7233e74562fbbc3474cbc6a51843e6748773f754235bf01352fbfc524323e000080bfb857d53e67e8683fcbcc4c3d982a333e60e2dabbd7f800bd13ab103fcf0c533fa80933bffd0a1abfd681c53e000080bfbf0cd03ee48d6b3f06d7233d0ad7233e0e77b4bb2ea785bee218813e838b6e3faaf434bf341335bf170dd9bb000080bf04e1d83e0dad6a3f78b9d53c9c15323e40c057bc632bcfbe4b91053fe543403f214e52bfd57411bf551344bd000080bf05e1d83e5f986f3f54b0d03c0ad7233e3ae719bc485413bfc979733efe4f483f618926bfb38136bfcf0e86be000080bffc03de3e893e6d3f23e7193c0ad7233e5cb0d0bc0ddd4dbfcf87753e043e0b3f89cf0abf9fbb2bbf178501bf000080bfd0b3e33e7316703f20c0573c9c15323e80b9d5bceb9f41bf0a29043fb5b5cd3e1f4827bf200b20bfd787dabe000080bfc272dd3e3ee1713fb9f5453ececc4c3d992a33be6a2e5e3feb4138bd064afdbe216dc7bce0a77d3fdbfe07be000080bfaebd143f1ce32e3fc9503f3e7bb9d53c9c1532be55ee4e3f5625d5be4f25d5be22b5693e5b965f3f1748dcbe000080bf10c30e3f7882303f9d15323e7db9d53cc9503fbe5525d53e5525d5be54ee4ebf6c3cb83b2be3633fc03fe9be000080bf10c30e3f99bd333f992a333ececc4c3db9f545be064afd3eeb4138bd6a2e5ebff60f25bdec137f3f0dd098bd000080bfaebd143ff679333f992a333e9899193eb9f545be064afd3eea41383d6a2e5ebf8a10253dec137f3f36d0983d000080bf18bf2d3ff679333fb9f5453e9899193e992a33be6a2e5e3fea41383d064afdbed76cc73ce0a77d3fc9fe073e000080bf18bf2d3f1ce32e3fc9503f3e9c15323e9d1532be54ee4e3f5825d53e5525d5be67a913be3558533fa1aa0b3f000080bfb6b9333f7882303f9c15323e9c15323ec9503fbe5125d53e5725d53e55ee4ebf7e53863c48ac623ff1cded3e000080bfb6b9333f9abd333f9c15323ec7503f3e9c1532be5a25d53e53ee4e3f5725d5be40faf5bd7fb3003f57265b3f000080bfd7f4363f9abd333f9899193eb9f5453e992a33befa41383d672e5e3f0e4afdbea2a349bcf1c5fd3ebc515e3f000080bf3394383f37b8393f9899193e9999193ecbcc4cbe9e97583da297583d7e487fbf42558b3baea27f3f93d0593d000080bf18bf2d3f37b8393f9999193ececc4c3dcbcc4cbe9f97583d9e9758bd7e487fbf17528bbbaea27f3f89d059bd000080bfaebd143f37b8393f9899193e982a333eb9f545bef241383d064afd3e692e5ebf0000000034685e3f328bfd3e000080bf59fd333f37b8393fcfcc4c3d982a333eb9f545bef04138bd084afd3e692e5ebf75fc7d3b496d5e3f6177fd3e000080bf59fd333fa1b9523fcfcc4c3db9f5453e992a33bef94138bd672e5e3f0e4afdbea0a3493cf1c5fd3ebc515e3f000080bf3394383fa1b9523fcbcc4c3d9999193ecbcc4cbea39758bd9f97583d7e487fbf7e5a8bbbaea27f3f9ad0593d000080bf18bf2d3fa2b9523f80b9d53c9c15323ec9503fbe5a25d5be5a25d53e53ee4ebf14a6923dd8b9663f20c6da3e000080bfb6b9333f3fb4583f9899193e9911cd3cb9f545beed41383d064afdbe6a2e5ebf0000000034685e3f308bfdbe000080bf6c7f0e3f37b8393f9c15323e2bc0573c9c1532be5d30ea3e582743bf546feabe8f7fce3d8f580e3f5d3453bf000080bfef870b3f99bd333f9899193e4fe2da3b992a33beb6b20a3d9c8053bf88f80fbf8babd23bb918103f869653bf000080bf92e8093f37b8393fcbcc4c3d4fe2da3b992a33beb2b20abd9d8053bf87f80fbf83abd2bbb618103f879653bf000080bf92e8093fa1b9523fcbcc4c3d9711cd3cb9f545beea4138bd064afdbe692e5ebf0000000034685e3f328bfdbe000080bf6c7f0e3fa1b9523fcbcc4c3dcccc4c3dcbcc4cbea09758bda39758bd7e487fbf355c8b3baea27f3f9fd059bd000080bfaebd143fa2b9523f78b9d53c7bb9d53cc9503fbe5125d5be5125d5be57ee4ebfde34b8bb29e3633fc73fe9be000080bf10c30e3f3fb4583f78b9d53c2bc0573c9c1532be9ff1ccbe033142bf0ba003bfbfd58fbd61b6153f09e14ebf000080bfef870b3f3fb4583fa011cd3c9899193eb9f545be064afdbefa41383d692e5ebfeb0f25bdec137f3f15d0983d000080bf18bf2d3fe2f7583f9811cd3ccecc4c3db9f545be064afdbed54138bd6a2e5ebf3a10253dec137f3f14d098bd000080bfaebd143fe2f7583f20c0573c7db9d53c9d1532bee34340bf642bcfbe4f9105bf96ce34bec96f623fd614ddbe000080bf10c30e3f60ef5b3f40e2da3bcecc4c3d992a33becf0c53bfb1f800bd13ab10bfceb32e3deefd7d3f38a6f0bd000080bfaebd143fbd8e5d3f60e2da3b9899193e992a33be9c8053bfd0b20a3d8af80fbf7fa425bd36f77d3f9900f43d000080bf18bf2d3fbc8e5d3f40c0573c9c15323e9c1532beb5d23fbfc8bfef3ef9bfefbe444d763e55ec593f9ec7ee3e000080bfb6b9333f60ef5b3fb9f5453e982a333e989919be692e5e3f064afd3ef04138bd2bb866bdf67e403eaf057b3f000080bfd0322d3d1209a03ec9503f3e9c15323e9d1532be54ee4e3f5825d53e5525d5be3bfd063eeba80f3fbb2f513f000080bf30e39a3c7425a33e9c15323ec7503f3e9c1532be5a25d53e53ee4e3f5725d5be089229bd67cff23ed521613f000080bf08bf9e3ca24aa73e992a333eb9f5453e989919be104afd3e672e5e3ffb4138bd39edaebd47f0cc3d57c67d3f000080bf58f02f3d5ceca53e992a333eb9f5453ecfcc4cbd0e4afd3e672e5e3ffa41383d7ce9ed3d684ef0bd797c7c3f000080bfe9ef0f3e4a80a63eb9f5453e982a333ecfcc4cbd692e5e3f064afd3eed41383d4581a03d673567beaa94783f000080bf86400f3e009da03ec9503f3e9c15323e80b9d5bc51ee4e3f5825d53e5a25d53e35a2dabd7a7c17bf038d4c3f000080bfa11c273e2200a43e9c15323ec7503f3e80b9d5bc5525d53e51ee4e3f5f25d53eb6a4923dc49ef8be550a5f3f000080bf1a98273e4e25a83e9899193ecbcc4c3ecbcc4cbda097583d7e487f3fa997583d92827f3dbcfb65bdc8187f3f000080bfc02f103e2757b13e9899193eb9f5453ea011cdbcf741383d672e5e3f124afd3e6bc3bb3df84ffebec7f15c3f000080bf79e4283eae84b23e9999193ecbcc4c3e989919bea497583d7e487f3fa09758bd1a0a18bd17c9603d01707f3f000080bfb0ef303d38c3b03e9899193eb9f5453e992a33befa41383d672e5e3f0e4afdbea47688bde450fe3edf875d3f000080bf203c983ce1a6b13ecfcc4c3db9f5453e992a33bef94138bd672e5e3f0e4afdbe30b8f7bdff41f93eeb755d3f000080bf283c983ca834e13ecbcc4c3dcbcc4c3ecbcc4cbda69758bd7e487f3fa897583dd34b473d84194ebd435f7f3f000080bfbf2f103eefe4e03ecbcc4c3db9f5453ea011cdbcf74138bd662e5e3f144afd3e1374113ef01ff8be21f55c3f000080bf79e4283e7512e23ecbcc4c3dcbcc4c3e999919bea79758bd7e487f3fa79758bd9d4ad0bc8451533d82937f3f000080bfacef303d0051e03e80b9d53cc7503f3e9c1532be5f25d5be51ee4e3f5525d5bea96aecbd4d78d03e84f1673f000080bf10bf9e3c0e96ed3ecfcc4c3d982a333eb9f545bef04138bd084afd3e692e5ebf31446abe9e30573fe063fb3e000080bf0000000078f0e33e80b9d53c9c15323ec9503fbe5a25d5be5a25d53e53ee4ebf724ca1bea995443fbac70e3f000080bf2046ce3bbf82ef3e40c0573c9c15323e9c1532beb5d23fbfc8bfef3ef9bfefbe688670be4047f23e425c593f000080bf40e39a3cd7baf53ea011cd3cb9f5453e989919be104afdbe672e5e3f024238bd897a273c8ece6b3de18f7f3f000080bf58f02f3d0a39ed3e9811cd3cb9f5453ecfcc4cbd104afdbe672e5e3fe341383d3e82273cb3323cbd5db77f3f000080bfe9ef0f3ef9cced3e40e2da3b982a333ecfcc4cbdf9ce52bfbb09113fc761f73c6a7defbc2ba3c3bd2ab87e3f000080bf86400f3e325ef93e60e2da3b982a333e989919be9c8053bf8af80f3fccb20abd1af8363d7b4e003e93b97d3f000080bfd0322d3d43caf83e78b9d53cc7503f3e80b9d5bc5a25d5be53ee4e3f5a25d53ef988093e97dccbbe1e4d683f000080bf1b98273eba70ee3e78b9d53c9c15323e40c057bc632bcfbe4b91053fe543403ff6728d3e3f9136bf17ef243f000080bfd706343ea683f03ecbcc4c3d982a333e60e2dabbd7f800bd13ab103fcf0c533f60ca6f3ec3354cbff0440e3f000080bf398d3a3e9204e53e20c0573c9c15323e80b9d5bceb9f41bf0a29043fb5b5cd3e215b403ea575d5beb8aa633f000080bfa11c273e8495f63e23e7193c0ad7233e5cb0d0bc0ddd4dbfcf87753e043e0b3f7babc43ef336fabe0989483f000080bffc34273ef888fa3ef376b43b0ad7233e07d723bd4ba56fbf61f4783eb81c823e1a99103e1acccdbe009b673f000080bf49b0183e934cfc3e59562f3b0ad7233ececc4cbd694877bf6451843e47474c3c5cf506bd84c22ebe6d1a7c3f000080bf80b10e3e8896fd3e74562f3b0ad7233e989919beb03e77bf2f4c843ecb2eb0bc32bf0c3dbccc563e5a267a3f000080bfb0f62a3d9a02fd3ea9ec933b0ad7233ec73f20be7a896ebfb1467f3e6f1a87be833108be2042e23ee91b633f000080bfb000113d2319fc3e33d2913bcddf213eccdf21bea38c6ebf5df9833eebc782be4a5102beada7da3e4d2d653f000080bf045f0a3da46afc3edb078d3b0a7d1f3e0ad723be78896ebf701a873ec5467fbe45b1fdbd1e2bd43e2bd1663f000080bf1859023de3d5fc3e77562f3b9999193e0ad723be0b3f77bf0d10ae3c574c84be4c7f67bee17ad63ec622613f000080bf507d013de87ffe3e60e2da3b9899193e992a33be9c8053bfd0b20a3d8af80fbfc16ef8be8ad7ed3e5ca43d3f000080bf604c8b3c4982fc3e78b9d53c2bc0573c9c1532be9ff1ccbe033142bf0ba003bfe7e4a7be838acfbe4c735a3f000080bf03034e3ee8c6d83ecbcc4c3d4fe2da3b992a33beb2b20abd9d8053bf87f80fbfba676abe2a950abf831d4f3f000080bf625f4c3e1084e33ecbcc4c3d6b562f3b0ad723be7b29e0bc432d77bfc08584be111e53be95dc7dbec453723f000080bfde755b3e12efe43e54b0d03c2de7193c0ad723bea39706bf179650bf81347abe2c4937be3c0b33be45db773f000080bf8a0e5c3e91e5d93e21e7193c57b0d03c0ad723befd4f48bf4a5413bfb87973bef13e2cbe536d30beca77783f000080bf8a0e5c3eea85ce3e20c0573c7db9d53c9d1532bee34340bf642bcfbe4f9105bf308ed2be13c1a9befe5d593f000080bf01034e3e6ea3cf3e78b9d53c7bb9d53cc9503fbe5125d5be5125d5be57ee4ebf818212bf7b2212bf7bb7163f000080bf6bab403e2e33d43eeb76b43b0ad7233d0ad723be888b6ebf1ca785beca1881beb2684fbe544c4fbe4e47753f000080bf52b35b3e6101c83e40e2da3bcecc4c3d992a33becf0c53bfb1f800bd13ab10bfd97c0abf3ebc7fbe86984d3f000080bf635f4c3e8ce0c43e54562f3bcecc4c3d0ad723be694877bf31474cbc595184beb20c7fbe5b0367bea01c713f000080bfde755b3e8776c33e60e2da3b9899193e992a33be9c8053bfd0b20a3d8af80fbf2b320dbf003181be57894b3f000080bf0306493e1873a13e77562f3b9999193e0ad723be0b3f77bf0d10ae3c574c84be4dc482bee55c7fbe78226f3f000080bf7d1c583e1209a03e2bc057bc9c15323e80b9d5bc4b723f3f076c063f82fdcf3eca56e73c44f222bf0150453f000080bf29ac9b3e6c1a673f2de719bc0ad7233e5cb0d0bcf94f483fc879733e4c54133fd7d35abe9bfb43bfd1591b3f000080bf7b1c9e3e1fc4653ffd76b4bb0ad7233e07d723bd478c6e3fc6fb813e0bc5843e7ca7dfbc01db29bff1673f3f000080bf6e4e973e2c6c643f66562fbb0ad7233ececc4cbdfd3c773f454b843eb021ba3c5865313e792e35bfcd552f3f000080bf1898923e9185633f4fe2dabb982a333ecfcc4cbd9d80533f87f80f3fb1b20a3d84f9b83e782f13bfa9ee3b3f000080bf2f3d903eca0e653f4fe2dabb982a333e989919beb628533f3e80103fd94e03bd0771fa3e111e2fbfd3860a3f000080bfe5244c3e56ac573f66562fbb0ad7233e999919beda4b773f3953843ea3e8dfbb0de0623ef95c50bfaf7d093f000080bfb8da503e1d23563f9e7289bb0ad7233ed4171fbe7c896e3fb9467f3e5a1a87bef412b33eb6a84fbf4af9ef3e000080bfb1dc4c3e342f553f2bc057bc9c15323e9d1532be8729403f722fef3edf39efbe2662233f8e1532bf88daa83e000080bf83ae3a3e6651533f24678bbbcde5223ef83220be7d896e3f95467f3e601a87beeb12b33eada84fbf6df9ef3e000080bf0c594c3eebe5543f6fe889bbdb6c213edb6c21be458c6e3f2acb843e91f581be75a2b43ef3b04fbf78b0ee3e000080bfc3e84b3eb289543f606284bbca881e3e0ad723be7c896e3f681a873e97467fbe1c4fb53e28d14fbfecbced3e000080bfa8034b3e82d7533f60562fbb9999193e0ad723be793f773f5065ab3c904c84be29e32f3e33574cbf02cf133f000080bf1e814c3ee55b533f4fe2dabb9899193e992a33be9d80533fa9b20a3d87f80fbf120aba3e627d4bbf93ccf83e000080bf8c48413e9fbc503f4fe2dabbcecc4c3d992a33bed10c533fd9f800bd10ab10bfa60faf3e319944bf13a60a3f000080bf001e6a3ee056423f6b562fbbcccc4c3d0ad723be6b48773fd7474cbc585184be88ca2b3e21f03abfa38b293f000080bf9356753e26f6443f0677b4bb05d7233d0ad723be858b6e3f24a785bed01881be005bb73bf62f2fbfe9a93a3f000080bfa4697a3e8815433f2bc057bc7bb9d53c9c1532bee443403f682bcfbe499105bf75d89c3d3f433bbfc3722d3f000080bfef0a773e16093e3f2de719bc54b0d03c0ad723befa4f483f4a5413bfca7973be60a130bee83511bfc0274e3f000080bf1ada803e6a64403f7db9d5bc2bc0573c9c1532be99f1cc3e023142bf0fa003bf569745be48461ebf250d433f000080bfa46b803ea52d3a3f7bb9d5bc7db9d53cc9503fbe5525d53e5325d5be54ee4ebfbd44173e5fa358bf790c033f000080bfffaa703e264f3a3f57b0d0bc2de7193c0ad723bea397063f179650bf8f347abe5537a1bec310e8be7f7b553f000080bf03f3863e79973b3fcecc4cbd60562f3b0ad723be6c29e03c432d77bfc18584be150aeebe3a4f77bee90d5a3f000080bfce9c8c3e8dd5363fcecc4cbd4fe2da3b992a33beb8b20a3d9c8053bf88f80fbfe551f0be3b8b02bfd98a383f000080bfd67b853e4c68353f999919be4fe2da3b992a33beb2b20abd9c8053bf88f80fbfab530abfed9eeabe53aa343f000080bf84fb963eeff3253f999919be6b562f3b0ad723be4462a8bcf63f77bfd24c84bef6fd02bf2ef658beb027553f000080bf7b1c9e3e2f61273f4fe2dabbcecc4c3d992a33bed10c533fd9f800bd10ab10bf6ab32ebdf0fd7d3f1ca6f0bd000080bfbf63363f87d7813e2bc057bc7bb9d53c9c1532bee443403f682bcfbe499105bfb3ce343ec86f623fd314ddbe000080bf2169303f3f16853e7bb9d5bc7db9d53cc9503fbe5525d53e5325d5be54ee4ebf0135b83b28e3633fc93fe9be000080bf2169303f828c8b3e9711cdbccecc4c3db9f545be064afd3ee94138bd692e5ebf621025bdec137f3f2dd098bd000080bfbf63363f3b058b3e9911cdbc9899193eb9f545be064afd3ee641383d6a2e5ebf8a10253dec137f3f34d0983d000080bf29654f3f3b058b3e4fe2dabb9899193e992a33be9d80533fa9b20a3d87f80fbff0a4253d34f77d3fcd00f43d000080bf29654f3f87d7813e2bc057bc9c15323e9d1532be8729403f722fef3edf39efbe16471cbeb5854f3f7eb8103f000080bfc75f553f4016853e7db9d5bc9c15323ec9503fbe5325d53e5525d53e54ee4ebf0353863c48ac623ff1cded3e000080bfc75f553f828c8b3e7cb9d5bcc7503f3e9c1532be5c25d53e53ee4e3f5425d5be3cfaf5bd7eb3003f59265b3f000080bfe89a583f828c8b3ececc4cbdb9f5453e992a33befe41383d672e5e3f0e4afdbea4a349bcf1c5fd3ebc515e3f000080bf443a5a3fbe81973ececc4cbd9999193ecbcc4cbea297583da797583d7e487fbf34558b3baea27f3f97d0593d000080bf29654f3fbe81973ecccc4cbdcecc4c3dcbcc4cbea497583da09758bd7e487fbfda548bbbaea27f3f93d059bd000080bfbf63363fbe81973ececc4cbd982a333eb9f545bef441383d064afd3e6a2e5ebf0000000035685e3f308bfd3e000080bf6aa3553fbe81973e989919be982a333eb9f545bef04138bd064afd3e692e5ebf86127e3b496d5e3f5d77fd3e000080bf6aa3553f9384c93e989919beb9f5453e992a33befa4138bd672e5e3f0e4afdbea0a3493cf1c5fd3ebc515e3f000080bf443a5a3f9384c93e999919be9999193ecbcc4cbea39758bda497583d7e487fbf04548bbbaea27f3f96d0593d000080bf29654f3f9384c93e9c1532be9c15323ec9503fbe5a25d5be5a25d53e53ee4ebf61a6923ddab9663f19c6da3e000080bfc65f553fce79d53ececc4cbd9911cd3cb9f545bef041383d064afdbe6a2e5ebf0000000035685e3f2e8bfdbe000080bf7d25303fbe81973e7db9d5bc2bc0573c9c1532be99f1cc3e023142bf0fa003bfc4d58f3d62b6153f07e14ebf000080bf002e2d3f828c8b3ececc4cbd4fe2da3b992a33beb8b20a3d9c8053bf88f80fbf8fabd23bb918103f869653bf000080bfa38e2b3fbe81973e999919be4fe2da3b992a33beb2b20abd9c8053bf88f80fbf7fabd2bbb718103f869653bf000080bfa38e2b3f9384c93e999919be9711cd3cb9f545beeb4138bd064afdbe692e5ebf0000000034685e3f328bfdbe000080bf7d25303f9384c93e999919becccc4c3dcbcc4cbea29758bda39758bd7e487fbf83558b3baea27f3f96d059bd000080bfbe63363f9384c93e9d1532be7bb9d53cc9503fbe5025d5be5125d5be57ee4ebfea32b8bb28e3633fc93fe9be000080bf2169303fce79d53e9d1532be2bc0573c9c1532be7b20eabec83043bfc35feabe23a1cebd7c4e0e3fa33a53bf000080bfff2d2d3fce79d53e982a33be9899193eb9f545be064afdbefb41383d692e5ebf0f1025bdec137f3f1fd0983d000080bf29654f3f1401d63e992a33bececc4c3db9f545be064afdbed84138bd6a2e5ebf7a10253dec137f3f27d098bd000080bfbe63363f1501d63eca503fbe7db9d53c9d1532be58ee4ebf4e25d5be4e25d5beecb469be5a965f3f3448dcbe000080bf2169303f11f0db3eb9f545bececc4c3d992a33be692e5ebfd04138bd084afdbe7c6dc73cdea77d3fddfe07be000080bfbe63363fca2edf3eb9f545be9899193e992a33be692e5ebf0342383d0a4afdbe976dc7bcdea77d3ffcfe073e000080bf29654f3fc92edf3ec7503fbe9c15323e9c1532be51ee4ebf5f25d53e5625d5be18b5693e5a965f3f2948dc3e000080bfc65f553f10f0db3e4fe2dabb982a333e989919beb628533f3e80103fd94e03bdeaaebcbd84b4423e7a387a3f000080bf1257143f23fbfd3e2bc057bc9c15323e9d1532be8729403f722fef3edf39efbe843be93d27e81a3fa8b7493f000080bfb35f0e3f739d003f7cb9d5bcc7503f3e9c1532be5c25d53e53ee4e3f5425d5be4ad068bd09d0f53e2c18603f000080bfb4840e3fa5af023f9711cdbcb9f5453e989919be104afd3e672e5e3ff74138bdb9c2cebdbad4de3d142a7d3f000080bfa08b143fa8ee013f9911cdbcb9f5453ecfcc4cbd0e4afd3e672e5e3ff441383d4cc2ce3d78d4debd152a7d3f000080bf02892d3fa7ee013f4fe2dabb982a333ecfcc4cbd9d80533f87f80f3fb1b20a3d79d6b83d570744be6b337a3f000080bf74542d3f23fbfd3e2bc057bc9c15323e80b9d5bc4b723f3f076c063f82fdcf3eec1d48bd321411bf088d523f000080bf6450333f729d003f7db9d5bcc7503f3e80b9d5bc5825d53e51ee4e3f5a25d53eb3cf683d09d0f5be2c18603f000080bf6475333fa4af023fcecc4cbdcbcc4c3ecbcc4cbda397583d7e487f3fa997583d8d184c3d086b63bd61497f3f000080bf02a92d3fcf59073fcecc4cbdb9f5453ea011cdbcf841383d672e5e3f124afd3e5a71a23d9455febe5f405d3f000080bfd4d7333f47de073fcccc4cbdcbcc4c3e989919bea797583d7e487f3fa39758bdb5194cbd106b633d5f497f3f000080bfa0ab143fcf59073fcecc4cbdb9f5453e992a33befe41383d672e5e3f0e4afdbe7c72a2bd9155fe3e5c405d3f000080bff35f0e3f48de073f989919beb9f5453e992a33befa4138bd672e5e3f0e4afdbe56d606be40b2f83eb4375d3f000080bf53a60e3fc3a41f3f999919becbcc4c3ecbcc4cbda79758bd7e487f3fab97583d76f8173dcbb550bdb07d7f3f000080bf63ef2d3f4b201f3f999919beb9f5453ea011cdbcf74138bd672e5e3f124afd3e20d6063e43b2f8beb5375d3f000080bf341e343fc3a41f3f999919becbcc4c3e999919bea89758bd7e487f3fa79758bdadf817bdc5b5503dae7d7f3f000080bf00f2143f4b201f3f9c1532bec7503f3e9c1532be5f25d5be51ee4e3f5a25d5be8e0b00be3323ce3e5d23683f000080bfbcec0e3fc1d4253f989919be982a333eb9f545bef04138bd064afd3e692e5ebfdf3573be60ac563f7808fb3e000080bf92e8093fbb10213f9c1532be9c15323ec9503fbe5a25d5be5a25d53e53ee4ebf4155a5be3d6c433f82380f3f000080bf38960b3f00d5263fc7503fbe9c15323e9c1532be51ee4ebf5f25d53e5625d5be69b062be036ee13e2dc15e3f000080bfecd90e3f6fe7293f982a33beb9f5453e989919be0e4afdbe672e5e3f054238bd00000000f1ea533d3aa87f3f000080bf25f5143f6394253f992a33beb9f5453ecfcc4cbd104afdbe672e5e3fe441383d00000000feea53bd3aa87f3f000080bf88f22d3f6394253f9d1532bec7503f3e80b9d5bc5a25d5be53ee4e3f5a25d53e360b003e4723cebe5b23683f000080bf6cdd333fc1d4253fb9f545be982a333ecfcc4cbd692e5ebf0a4afd3ed241383dfdc4a6bc0ded00becce87d3f000080bfced72d3f685d2b3f9d1532be9c15323e40c057bc787debbedd46eb3e0382423fe8f1963e3c653abf4f6b1e3f000080bf20fc363fffd4263f999919be982a333e60e2dabb4ed907bd5532103f125b533fb329683ea7df4cbf171b0e3f000080bfad8c383fba10213fca503fbe9c15323e80b9d5bc57ee4ebf5125d53e5525d53e40b0623e276ee1be27c15e3f000080bf9cca333f6fe7293fb9f545be982a333e989919be692e5ebf0d4afd3e044238bd6ac4a63c04ed003ecce87d3f000080bf6cda143f685d2b3fcbcc4cbe9999193ecbcc4cbd7e487fbf9b97583d9e97583d72bf273db06a52be4c517a3f000080bf94a62d3f1be32e3fb9f545be9899193ea011cdbc692e5ebfdd41383d0b4afd3e4089d93e1ec3e5be0044493f000080bf20df333f8a4c2d3fcbcc4cbe9999193e989919be7e487fbfa697583da39758bd78bf27bd9d6a523e4c517a3f000080bf32a9143f1be32e3fb9f545be9899193e992a33be692e5ebf0342383d0a4afdbe4089d9be14c3e53e0244493f000080bf3e670e3f8a4c2d3f0ad723befd76b43b06d723bdc3fb81be478c6ebf0cc5843ef7a9253ea2c6643e7511763f000080bffc96243f82d1073e0ad723be2de7193c54b0d0bcbc7973befb4f48bf4a54133fefce803e8fcd053fbf87503f000080bfbc36283fe6be053e9c1532be2bc0573c78b9d5bc026c06bf4d723fbf81fdcf3ed4947a3ee924a63e28e7693f000080bfee4a283fca80f23d0ad723be66562f3bcbcc4cbd414b84befd3c77bfb321ba3c3d09e53cc059833cf5dd7f3f000080bf4518223f385b093e982a33be4fe2da3bcbcc4cbd87f80fbf9d8053bfb8b20a3d000000003be6273deac87f3f000080bf3e58223f40f8f73d992a33be4fe2da3b989919be2dea0fbf978953bf64e40bbdf7a1a4bd811a5d3cec257f3f000080bf1e65093f788dee3d0ad723be60562f3b989919be9b5384be984c77bf0e7c9ebb583802be3c0dee3c05d07d3f000080bf2425093fd3a5043e0ad723be0f48753b89751dbe9a467fbe7f896ebf551a87be553d86be09194abe9cd2713f000080bf6e34083f97b6033e73a520be555c783b72a520be82e272be8fd471bfd41a68bea15e71be297a2ebed6ee743f000080bf4d60073f51ba053e8b751dbe2048753b0ad723be59a682be21686ebf2a2185be61b081bea8d347be728f723f000080bfca8b063fe0cd073e9d1532be2bc0573c9c1532be7b20eabec83043bfc35feabe2607b0beab73a5be4eb6613f000080bf6669033f2095e43d999919be6b562f3b0ad723be4462a8bcf63f77bfd24c84beff6980bea6177bbe39bc6f3f000080bfae7b063f83360b3e999919be4fe2da3b992a33beb2b20abd9c8053bf88f80fbf517f90becc2a08bf70634c3f000080bfb5bf023ff1aa073eb9f545be9911cd3c989919be692e5ebf0a4afdbed04138bdf60c3ebd7a7c1abc7fb67f3f000080bf90b3093f60b0ba3dc7503fbe7bb9d53c78b9d5bc53ee4ebf5725d5be5a25d53ede06993e045aa33e9c3d663f000080bf2882283f58fdcd3d9c1532be7db9d53c20c057bc11a003bf98f1ccbe0231423f23e5063f94e70c3f62c9253f000080bf36842b3f9463e13db9f545be9711cd3ccbcc4cbd692e5ebf0d4afdbefc41383d9d44f7ba882fc03db0de7e3f000080bfb1a6223f2c1bc43dca503fbe7db9d53c9d1532be58ee4ebf4e25d5be4e25d5be41ccafbe5ed776beea61683f000080bfa0a0033fac11c03d9d1532be7bb9d53cc9503fbe5025d5be5125d5be57ee4ebfd4fa19bfbe640abfbb93163f000080bf1d30003fec08d13dcbcc4cbececc4c3d999919be7e487fbf999758bd9b9758bdd2134dbd1eaf59bd14517f3f000080bf1cd0093f56de8d3db9f545bececc4c3d992a33be692e5ebfd04138bd084afdbe4c17f5be5ddf42be866b5b3f000080bfdf78033fceea943dcbcc4cbecccc4c3dcbcc4cbd7e487fbfa79758bda697583d4d65313d231e2c3e371d7c3f000080bf3ec3223f2049973db9f545bececc4c3d9811cdbc672e5ebfec4138bd0e4afd3ec1c5eb3e60ea993e54d0553f000080bf61e1283f6609a33db9f545be9899193ea011cdbc692e5ebfdd41383d0b4afd3ebf9ff73e71889b3eee23523f000080bf60e1283fa058293ccbcc4cbe9999193ecbcc4cbd7e487fbf9b97583d9e97583db0ba7e3d4058463e8ba57a3f000080bf3ec3223fc0ac963bcbcc4cbe9999193e989919be7e487fbfa697583da39758bd611b67bd4d208bbdf7ff7e3f000080bf1dd0093f00000000b9f545be9899193e992a33be692e5ebf0342383d0a4afdbe16e9fcbef3c83bbe8394593f000080bfdf78033f808f613bb9f545bececc4c3d9811cdbc672e5ebfec4138bd0e4afd3e3299cf3e8eb523bf2a37273f000080bf5afd6e3f9405d93ec7503fbe7bb9d53c78b9d5bc53ee4ebf5725d5be5a25d53e9a2e153fb9992abfb420ee3e000080bf5e5d743fca2edf3e9c1532be7db9d53c20c057bc11a003bf98f1ccbe0231423f27bd293f151c3fbf2149633d000080bf3ca6763f0d9dda3e982a33bececc4c3d40e2dabb89f80fbf9fb20abd9c80533f0c791d3fc7512fbf9603c83e000080bf1a3c723f1688d23e992a33be9899193e60e2dabb8af80fbfb1b20a3d9c80533f604f213f332221bf58d1e83e000080bf9d8d603f1e2baf3eb9f545be9899193ea011cdbc692e5ebfdd41383d0b4afd3e9a4bc83e15460dbfcf8a3c3f000080bfde4e5d3f9ca8b53eca503fbe9c15323e80b9d5bc57ee4ebf5125d53e5525d53e0728803ecf44cbbed60d623f000080bf443a5a3f96e8aa3e9d1532be9c15323e40c057bc787debbedd46eb3e0382423fb087093fb08b09bff570263f000080bf22835c3fd956a63e0ad723be9999193e6d562fbb6d4c84be5a5fad3c273f773fa885333fd2fa2ebf0a754f3e000080bf1a33633f24e0a93e0ad723bececc4c3d59562fbbc78584be4329e0bc432d773f61d62f3f224135bf6400283e000080bf96e1743f1c3dcd3e0ad723bec33d1f3e6eca8abb8dbd84be21bb823e2b736e3f959b283fd69c28bf994dba3e000080bfbc39623f69eda73e0ad723be57b0d03c23e719bc86347abea39706bf1796503f86f2323f73882dbf383e69be000080bfb837793f62e9d53e0ad723be2de7193c54b0d0bcbc7973befb4f48bf4a54133f8790293f3f6110bf787efcbe000080bfa20f7c3f3599db3e9c1532be2bc0573c78b9d5bc026c06bf4d723fbf81fdcf3ea34e1e3f2ec829bf40dcd7be000080bf1bef783fca2edf3e999919be982a333e60e2dabb4ed907bd5532103f125b533fcc5c273f59d31cbf0c6fe33e000080bf9d8d603f93829d3e235b21be235b213e37b088bbfeed6cbe7587723e5e8f713f43cf2a3f76cf2abffa83a93e000080bf0e4a623fd856a63e27731ebe0ad7233e639e83bb661a87bebe467f3e7a896e3f61ae283fd6ad28bfc9cbb93e000080bfb85c623f507aa43e999919be0ad7233e74562fbb0a45c6bb6e53843e2a4c773f0bd92e3f975b34bf2f65453e000080bf1a33633f8ccda23ececc4cbd982a333e60e2dabbb2b20a3d8af80f3f9a80533fc0512f3f10791dbf9d03c83e000080bf1a3c723f364b743e999919beb9f5453ea011cdbcf74138bd672e5e3f124afd3e3471153f6f0fc2beccd0373f000080bfde4e5d3f1505973ececc4cbdb9f5453ea011cdbcf841383d672e5e3f124afd3e90b5233f3399cfbe2837273f000080bf5afd6e3f3a50673ecccc4cbd0ad7233e74562fbbbf21ba3c4f4b843efb3c773f6855353fa5952fbf82d72a3e000080bf96e1743f28e17e3e7db9d5bcc7503f3e80b9d5bc5825d53e51ee4e3f5a25d53eb3be403f002b10bf0a5eae3e000080bf5e5d743fcffd5a3e7cb9d5bc9c15323e40c057bc7efdcf3e046c063f4d723f3f8e7c3f3fa34229bf9a3c6d3d000080bf3ca6763f4821643e07d723bd0ad7233e0e77b4bb18c5843ecffb813e448c6e3f511e353fb2ea34bf8a6c8ebb000080bf3ca6763f90ce773e2bc057bc9c15323e80b9d5bc4b723f3f076c063f82fdcf3e43b7263fc5f732bff02897be000080bf1bef783fcefd5a3e54b0d0bc0ad7233e3ae719bc4754133fd679733efd4f483f5289263fc78136bfa80e86be000080bfb837793f9e886d3e2de719bc0ad7233e5cb0d0bcf94f483fc879733e4c54133f3c61103f999029bf4f7efcbe000080bfa20f7c3ff728623ececc4cbdb9f545bea011cdbcf341383d692e5ebf064afd3eb3aa173f6f03d83e31b12f3f000080bf6e916f3ffe542a3f7cb9d5bcc9503fbe80b9d5bc5325d53e54ee4ebf5325d53eada0203f6d36163fb509033f000080bfdac2743fd4b52d3f7db9d5bc9d1532be40c057bc642bcf3e4d9105bfe343403f5e37363fc6ff313f8be3cb3d000080bfba2b773fd28e2b3fcecc4cbd992a33be60e2dabbeaf8003d13ab10bfcf0c533fc711243f55f4243f079cd53e000080bfa2fd723f5846273f989919be992a33be40e2dabbbc2a0ebd8cc10fbfb3a3533ffbd7163ffb19283f2408f13e000080bf3855623f28a0143f989919beb9f545be9811cdbcd94138bd6a2e5ebf064afd3e5ce8023f8191cf3ebdfa413f000080bf03e95e3fceae173f9c1532bec9503fbe78b9d5bc5325d5be54ee4ebf5525d53e38c6b73e82948c3e455e643f000080bf24235c3f9224123f9c1532be9c1532be20c057bc0dc2e9bebc7ee9be6890433f99db013ffe6c123fc905253f000080bf048c5e3f90fd0f3f0ad723bd0ad723be0677b4bb2ca7853ed91881be838b6e3fb3742a3f8ff53e3f24e67a3c000080bfa472773f80a5263fcecc4cbd0ad723be6d562fbb18484c3c5a5184be6948773f876c2a3f4b13393f75433d3e000080bf32c8753f15c8243f57b0d0bc0ad723be38e719bc4754133fcb7973befd4f483fbd211e3f7fe0403fa4c866be000080bf0fde793ff75a293f2bc057bc9c1532be80b9d5bc0231423f0ca003bfa1f1cc3e8ed2253fb369293fc244c1be000080bfbc52793fb2f72d3f2de719bc0ad723be5cb0d0bc1696503f8d347abea697063f4cf2033fd172383f2a87edbe000080bfd48b7c3fb65a2c3f999919be0ad723be5d562fbb2ef292bba35384beb24c773f906d243fb05a3d3ff2b14d3e000080bfc81f653fe421123f6c2c1dbe0ad723bede1a70bb651a87be98467fbe7d896e3fbffb1e3fa8fb313f1648b93e000080bff68a643f487b113ff85820bef75820be9ed46dbb791864be538972be2817723ff446213f198f343f3b6ca63e000080bf9ca9643fdc55103f0ad723be2e811cbe52fb63bb316485be1f9782beda606e3fe4d31e3f8ada313f4c4fba3e000080bf56cb643ffe120f3f0ad723be989919be59562fbb124d84be8fb3a5bc6140773f3b0c2a3fafe2383f0a78453e000080bfc252653f089a0e3f982a33be989919be40e2dabb89f80fbf9fb20abd9c80533f290d1a3fcf222b3f70c1df3e000080bf7ed4623f78cf0b3f992a33becfcc4cbd60e2dabb8af80fbfb3b20a3d9c80533f4bb2143fae303a3fb82cbb3e000080bfae7a753f1a4ef63e0ad723bececc4cbd6d562fbbc98584beb529e03c432d773fc360253f23803f3fd39f1b3e000080bff2f8773f3ae3fb3eb9f545be989919be9811cdbc692e5ebfeb4138bd0d4afd3e3252c03eaa9d173fde7c363f000080bfd8c55f3f4363083fc7503fbe9d1532be78b9d5bc53ee4ebf5725d5be5a25d53e4e2e663e58e0de3e3a2c5f3f000080bf02655c3fb0940d3fb9f545becfcc4cbda011cdbc692e5ebfdd41383d0d4afd3ee915c63e77942f3fabca1d3f000080bf086c723fb075ef3eca503fbe80b9d5bc80b9d5bc57ee4ebf5125d53e5325d53e1286133f5249343f0251d43e000080bf45f6773ff2e9e93e9d1532be80b9d5bc40c057bc0da003bf9af1cc3e0431423ff0b6363fb8ac303fa3f0f43d000080bf471d7a3fb2bbee3e0ad723be5cb0d0bc36e719bc96347abea397063f1696503f438e3c3fd9ab253f056d49be000080bfd48b7c3f81b7f33e6b562fbb0ad723bececc4cbd432d773fc08584be8329e03cc825df3bb4c9a3bd8f2c7fbf000080bfd2dcbb3e839ebb3e2de719bc0ad723be5cb0d0bc1696503f8d347abea697063f1fede93eae4393be407c57bf000080bfe1bbaf3e1601be3e2bc057bc9c1532be80b9d5bc0231423f0ca003bfa1f1cc3ed7b1963e702e8ebebd1a6abf000080bfd0dbaf3e443fc43e4fe2dabb992a33becfcc4cbd9d80533f87f80fbfb5b20a3ddbc75d3cfcf224bdd4c47fbf000080bf59aabb3ee750c23e7cb9d5bcc9503fbe80b9d5bc5325d53e54ee4ebf5325d53e67a98f3e7881a4be408a67bf000080bfd0dbaf3ebc62cd3e7db9d5bc9d1532be40c057bc642bcf3e4d9105bfe343403f3b30043fc8260cbfeb9428bf000080bf2fa3a93ee9d4c83e4fe2dabb992a33be989919be9c80533f88f80fbfaab20abd3fce60bc04d7233d5fc57fbf000080bf9c9ced3edf4ec23e60562fbb0ad723be989919beb23e773f254c84be7b2eb0bc00000000ee7da23d65317fbf000080bf15cfed3e7b9cbb3e2bc057bc9d1532be9c1532be3d22423f7518ecbeb7e7ebbe426eb3be687c9d3e377762bf000080bf9fb0f93e443cc43e93ec93bb0ad723bec73f20beea776e3f129284bea5c482beb67151be12b5543e75e174bf000080bfce15f13e5743bc3e9911cdbcb9f545be989919be064afd3e6a2e5ebfe64138bd1c1855bda6ffb43c3b977fbf000080bf9c9ced3ed749cf3e9711cdbcb9f545becfcc4cbd064afd3e6a2e5ebfe841383d4eed533d8d55b6bcf6977fbf000080bf59aabb3edf4bcf3e4fe2dabb989919be992a33be9644533fefe305bd195510bf23fe09bfff20813e41bb4dbf000080bfef87fa3e2581b93e1cd291bbcddf21beccdf21be57bb713f82106cbe7da070be4cee44be2fa9453e395076bf000080bf43e9f13e3b90bb3ec3078dbb097d1fbe0ad723be7f896e3f501a87bea7467fbe2f874cbe74964d3e058575bf000080bfc6e8f23ea6b0ba3e6b562fbb999919be0ad723bea54b773f9a97efbb125384be380c80be9496683ea7f270bf000080bfc0fbf23ece15b83e60562fbbcecc4cbd0ad723befd3c773fa121ba3c3a4b84be1bd281be6cd8953e2e076cbf000080bf24c8f43e14d5943e4fe2dabbcfcc4cbd992a33be9c80533fa9b20a3d88f80fbfcfbb0bbfb144973e42b948bf000080bf5254fc3e6c40963e2bc057bc80b9d5bc9d1532be4b723f3f82fdcf3e066c06bf61a622bfaa91553eaf573ebf000080bf2e59fc3ecf1f903ef576b4bb0ad723bd0ad723be478c6e3f0dc5843ebbfb81bea49caabe5b2fab3ed9ae61bf000080bf3803f53ec74f923e2be719bc5cb0d0bc0ad723bef94f483f4c54133fc17973be81e1e7bef420873edc025abf000080bffc57f53ed2918e3ecccc4cbdcbcc4cbecbcc4cbda397583d7e487fbfa397583dd79ee33dc4793fbde0217ebf000080bf8afebb3e0182da3ececc4cbdb9f545bea011cdbcf341383d692e5ebf064afd3e18997c3ee8c0f0be76ed58bf000080bfeca4af3eaf27d83e989919beb9f545be9811cdbcd94138bd6a2e5ebf064afd3e9b227b3eedb2fabe3c3356bf000080bf5071b13ecea0fb3e999919becbcc4cbecbcc4cbda39758bd7e487fbfa397583d8dbf063e718173bd2e517dbf000080bfeecabd3e22fbfd3ececc4cbdcbcc4cbe999919be9e97583d7e487fbfa39758bd526ae4bdd3613f3d181f7ebf000080bfcef0ed3efa7fda3e999919becbcc4cbe989919bea39758bd7e487fbf9e9758bd7b2e07bec295733d694d7dbf000080bf32bdef3e1af9fd3ececc4cbdb9f545be992a33bef041383d6a2e5ebf064afdbefffa7cbecdb8f03e94e858bf000080bfee87fa3ea324d83e999919beb9f545be992a33beeb4138bd6a2e5ebf064afdbe9a8c7bbe59aefa3ece2c56bf000080bf5254fc3ec49dfb3e7db9d5bcc9503fbe9c1532be5325d53e57ee4ebf5025d5be09cc8fbeb46da43e648867bf000080bf9eb0f93eba5fcd3e7bb9d5bc9c1532bec9503fbe5a25d53e4e25d5be54ee4ebfd90012bf0ea4123f73b716bf000080bf1d30003f60d1c83e4fe2dabb989919be992a33be9644533fefe305bd195510bfce262abda0fa7d3f2655f2bd000080bfb8512d3deff3253f2bc057bc9d1532be9c1532be3d22423f7518ecbeb7e7ebbede2f753e8fbd5a3fde0fecbe000080bfb04f9b3c4c93273f7bb9d5bc9c1532bec9503fbe5a25d53e4e25d5be54ee4ebfbf2bb83b24e3633fd73fe9be000080bfb84f9b3c6dce2a3f9711cdbc989919beb9f545be064afd3ee94138bd692e5ebf171125bdeb137f3f5ed098bd000080bfb8512d3dc98a2a3f9911cdbccfcc4cbdb9f545be044afd3ee541383d6a2e5ebf8110253dec137f3f31d0983d000080bf175a0f3eca8a2a3f4fe2dabbcfcc4cbd992a33be9c80533fa9b20a3d88f80fbf50a5253d34f77d3f1101f43d000080bf175a0f3eeff3253f2bc057bc80b9d5bc9d1532be4b723f3f82fdcf3e066c06bff598b2bdcb1c583f4466073f000080bf8e44273e4c93273f7db9d5bc80b9d5bcc9503fbe4f25d53e5625d53e55ee4ebfb651863c4bac623fe8cded3e000080bf8e44273e6dce2a3f7cb9d5bc40c057bc9c1532be9df1cc3e0331423f0ca003bfa2d58fbd5eb6153f0ae14e3f000080bf1231343e6dce2a3fcecc4cbd60e2dabb992a33bebab20a3d9a80533f8af80fbf8fabd2bbbc18103f8596533f000080bf84ae3a3e0bc9303fcecc4cbdcbcc4cbdcbcc4cbe9e97583da797583d7e487fbf29558b3baea27f3f99d0593d000080bf185a0f3e0bc9303fcccc4cbd989919becbcc4cbea097583d9e9758bd7e487fbf425b8bbbaea27f3f9ad059bd000080bfb8512d3d0ac9303fcecc4cbda011cdbcb9f545bef041383d0d4afd3e692e5ebf0000000034685e3f348bfd3e000080bf1b53283e0bc9303f989919bea011cdbcb9f545beee4138bd0a4afd3e692e5ebf06f97d3b486d5e3f6377fd3e000080bf1a53283e75ca493f989919be60e2dabb992a33beb7b20abd9c80533f8bf80fbf8aabd23bba18103f8596533f000080bf84ae3a3e75ca493f999919becbcc4cbdcbcc4cbea39758bda797583d7e487fbfa65b8bbbaea27f3fa5d0593d000080bf175a0f3e76ca493f9c1532be80b9d5bcc9503fbe5825d5be5a25d53e51ee4ebf1ca6923dd8b9663f20c6da3e000080bf8e44273e13c54f3fcecc4cbd992a33beb9f545bef141383d064afdbe6a2e5ebf0000000034685e3f328bfdbe000080bf48db923c0bc9303f7db9d5bcc9503fbe9c1532be5325d53e57ee4ebf5025d5be6bfaf53d7ab3003f5a265bbf000080bf20aecf3b6dce2a3fcecc4cbdb9f545be992a33bef041383d6a2e5ebf064afdbe8ba3493cecc5fd3ebf515ebf000080bf000000000bc9303f999919beb9f545be992a33beeb4138bd6a2e5ebf064afdbe87a349bcebc5fd3ebd515ebf000080bf0000000075ca493f999919be992a33beb9f545bee94138bd064afdbe6a2e5ebf0000000034685e3f328bfdbe000080bf48db923c75ca493f999919be999919becbcc4cbe9f9758bda39758bd7e487fbf755b8b3baea27f3fa1d059bd000080bfb4512d3d76ca493f9d1532be9d1532bec9503fbe5025d5be5525d5be57ee4ebfe834b8bb28e3633fcb3fe9be000080bfa84f9b3c13c54f3f9d1532bec9503fbe9c1532be5625d5be58ee4ebf4a25d5be57faf5bd78b3003f5c265bbf000080bf20aecf3b13c54f3f982a33becfcc4cbdb9f545be064afdbefa41383d692e5ebfd50f25bdec137f3f0fd0983d000080bf175a0f3eb608503f992a33be989919beb9f545be064afdbed34138bd6a2e5ebf3210253dec137f3f10d098bd000080bfb4512d3db608503fca503fbe9c1532be9d1532be58ee4ebf4a25d5be5225d5beefb469be5b965f3f2f48dcbe000080bfb04f9b3c3400533fb9f545be989919be992a33be692e5ebfd04138bd0b4afdbed76dc73cdea77d3feffe07be000080bfb4512d3d919f543fb9f545becfcc4cbd992a33be692e5ebf0442383d0a4afdbeec6cc7bce0a77d3fd6fe073e000080bf175a0f3e909f543fc7503fbe80b9d5bc9c1532be51ee4ebf5f25d53e5525d5be2cb5693e5b965f3f1b48dc3e000080bf8e44273e3400533f54b0d0bc3ae719bc0ad723bea397063f1696503f9b347abe9ae73b3f582894be414a1d3f000080bf28625a3f0c78f13e2be719bc5cb0d0bc0ad723bef94f483f4c54133fc17973be8a791a3f22461bbf0f87043f000080bf24235c3f8aaced3e2bc057bc80b9d5bc9d1532be4b723f3f82fdcf3e066c06bf0b98283f6bc50dbf1b6f023f000080bffc11593ff2e9e93e7cb9d5bc40c057bc9c1532be9df1cc3e0331423f0ca003bf7aef5d3f44c906beb721f63e000080bf3aa9573f8af6ec3ecccc4cbd77562fbb0ad723be9629e03c432d773fca8584becd833b3fe598203e2198293f000080bfe199563fb2edf83ececc4cbd60e2dabb992a33bebab20a3d9a80533f8af80fbfefa3463f8874aa3e442a093f000080bfecc9533f56dbf33e999919be6d562fbb0ad723be6da6a8bce93f773fd54c84bed91c2e3f11d64f3efc55343f000080bfa679453f43f50c3f989919be60e2dabb992a33beb7b20abd9c80533f8bf80fbf8d5e1d3f69faeb3eaddb233f000080bfb2a9423f156c0a3f9c1532be40c057bc9c1532be6830eabe5427433f526feabebb17f53e151f253f8b7d183f000080bf6a583e3fe4dc0e3f989919bea011cdbcb9f545beee4138bd0a4afd3e692e5ebf65d5d93e26a84b3f60e1dc3e000080bfd5603e3f9af1073f9c1532be80b9d5bcc9503fbe5825d5be5a25d53e51ee4ebfe3828e3ee199673f4829a53e000080bf31543b3f331e0d3fd38d1dbe530077bb0ad723be91a882be7d686e3f771c85be895f243f9480ba3e87b02c3f000080bff3be443f72a50d3fc7503fbe80b9d5bc9c1532be51ee4ebf5f25d53e5525d5bea2955c3e4e015e3f94dbe53e000080bf31543b3fc199113f982a33be60e2dabb989919bef2ed0fbf2b87533fa7ae0bbd31331b3f9334e13eb69d293f000080bfb2a9423f7d15133fc1b120be1b0e7abbc1b120be95a672be7bdc713f61d567bebd12283ff0ada73efaf22d3f000080bf6fbe443f9db60e3f0ad723be410077bbd28d1dbebc467fbe7f896e3f431a87bec653243f29dcb93e00e82c3f000080bff4be443fa3c60f3f0ad723be74562fbb999919bea15384be8d4c773fbf4fa2bb8b8b333f1bc0433e1acc2f3f000080bfa679453f646d103f0ad723be6d562fbbcecc4cbd4b4b84befb3c773fb121ba3caff5343faf22313e9f942f3f000080bfe199563f42a0223fb9f545bea011cdbc989919be672e5ebf0e4afd3e004238bde048cd3e2548403ff544063f000080bfd6603e3ffef8163fcbcc4cbecbcc4cbd989919be7e487fbfa797583d9f9758bd4ce2df3ca1776a3fb10ecd3e000080bf70ae3b3f183f193fb9f545becfcc4cbd992a33be692e5ebf0442383d0a4afdbe4e3fb9bda805773f6b587c3e000080bfae8c383fdb99133fcbcc4cbecbcc4cbdcbcc4cbd7e487fbf9d97583d9e97583de31b943d03a55c3ff77c003f000080bfabce4c3ff7712b3fb9f545bea011cdbccfcc4cbd692e5ebf0f4afd3ed041383daf5ad93eb80e313ffa95153f000080bf10814f3fdd2b293f992a33be60e2dabbcfcc4cbd8bf80fbf9c80533f98b20a3dfdf71b3f42cec53e8747313f000080bfecc9533f5c48253f9d1532be40c057bc80b9d5bc026c06bf50723f3f80fdcf3ea5c3303faa34c33de08f373f000080bf3aa9573fb0c3293f0ad723be0677b4bb0ad723bdc7fb81be448c6e3f18c5843ef7293d3f0fe7623c43742c3f000080bf3623583f2e94243f0ad723be36e719bc5cb0d0bccc7973befb4f483f4954133f6584453fd6c554be43ed193f000080bf28625a3f9967273f0ad723be5cb0d0bc36e719bc96347abea397063f1696503fc3ea443f1826d0bef869fc3e000080bf24235c3f10162b3f9d1532be80b9d5bc40c057bc0da003bf9af1cc3e0431423f27ac413f10f551bea3f81e3f000080bffc11593ff2b82c3fca503fbe80b9d5bc80b9d5bc57ee4ebf5125d53e5325d53e6b7c153fac14f43ee236283f000080bf01a5543f8d802c3fb9f545becfcc4cbda011cdbc692e5ebfdd41383d0d4afd3e6aaaaf3e6d43463f0610083f000080bf253a523f1ae32e3f999919becbcc4cbecbcc4cbda39758bd7e487fbfa397583da6a07fbf68fb553d1af05abc000080bf000040325fd1763f989919beb9f545be9811cdbcd94138bd6a2e5ebf064afd3e07317ebf2c05bf3dd134963d000080bfe074973b8aff7c3f9c1532bec9503fbe78b9d5bc5325d5be54ee4ebf5525d53ea01861bf28ebf23ed2d42b3d000080bf77afd13c71e17c3f982a33beb9f545becbcc4cbd064afdbe6a2e5ebff641383d0d765ebf0245fd3e491151bc000080bf72dfb23cb1f8763f992a33beb9f545be989919be064afdbe692e5ebfdd4138bd28515ebf14c7fd3eba134ebc000080bf70dfb23c76fe5d3f999919becbcc4cbe989919bea39758bd7e487fbf9e9758bd46747fbf3e70603d5a3a11bd000080bf0000000023d75d3f9d1532bec9503fbe9c1532be5625d5be58ee4ebf4a25d5be080960bfe9f9f53e6e4d6cbd000080bf76afd13c68f5573f999919beb9f545be992a33beeb4138bd6a2e5ebf064afdbece8f7cbfbf75ee3d4a9eeabd000080bfd074973b628c573fb9f545be992a33be989919be692e5ebf0a4afdbed54138bd62c6fdbe82515e3f39614b3c000080bf8a47413d9afe5d3fc7503fbe9d1532be78b9d5bc53ee4ebf5725d5be5a25d53e9ff3f2bed315613f9d842cbd000080bf80f3313d8be17c3f9c1532be9c1532be20c057bc0dc2e9bebc7ee9be6890433fddfd34bf090c353f00000000000080bfb9760d3d0000803fb9f545be992a33becbcc4cbd692e5ebf0b4afdbefe41383d0746fdbeec755e3ffc4e4e3c000080bf8b47413dd6f8763fca503fbe9c1532be9d1532be58ee4ebf4a25d5be5225d5bef0f1f5beea0b603f18a46b3d000080bf8af3313d82f5573f9d1532be9d1532bec9503fbe5025d5be5525d5be57ee4ebf470135bf9f08353f00000000000080bfb7760d3d909f543fcbcc4cbe989919be999919be7e487fbf969758bd999758bda2eb5fbd4c7a7f3fff15073d000080bfd6738d3d86d75d3fb9f545be989919be992a33be692e5ebfd04138bd0b4afdbe9eb7b1bdf38a7e3fa0397d3d000080bf5e05843db88c573fcbcc4cbe999919becbcc4cbd7e487fbfa49758bda397583d636c53bd33947f3f706acc3c000080bfd4738d3dc3d1763fb9f545be989919be9811cdbc692e5ebfeb4138bd0d4afd3e16b370bdc3897f3f91f449bc000080bf6105843de1ff7c3fb9f545becfcc4cbda011cdbc692e5ebfdd41383d0d4afd3ea19d643d2c987f3f6fa9e93b000080bfacdd083eed297c3fcbcc4cbecbcc4cbdcbcc4cbd7e487fbf9d97583d9e97583d70805f3ddb7e7f3fcbcdfd3c000080bfe7940d3ecffb753fcbcc4cbecbcc4cbd989919be7e487fbfa797583d9f9758bdd9e4503d837f7f3f169e143d000080bfe7940d3e93015d3fb9f545becfcc4cbd992a33be692e5ebf0442383d0a4afdbec645b93c8d997f3fff5b513d000080bfabdd083ec5b6563f9899193eb9f545bea011cdbcf341383d692e5ebf084afd3ef6450dbfaf4bc83ee18a3c3f000080bfcea83b3f32a6433f9c15323ec9503fbe80b9d5bc4f25d53e55ee4ebf5725d53ead44cbbe2528803ed90d623f000080bf3494383f3506493f9c15323e9d1532be40c057bc5b81ee3eb082eebe6d98403f8b2f08bf732f083f8aa6283f000080bf12dd3a3f144f4b3f9899193e992a33be60e2dabb35eb033d0e7510bffa2f533f4c2121bf8934213f261ee93e000080bf8de73e3ff0e4463fcfcc4c3d992a33be40e2dabbbdf800bd12ab10bfd00c533fd3632fbf57de1c3fd5a8c93e000080bf0996503f7536353fcfcc4c3db9f545be9811cdbcda4138bd692e5ebf0a4afd3e91b523bf2999cf3e2b37273f000080bf4a574d3fb6f7313f80b9d53cc9503fbe78b9d5bc5325d5be54ee4ebf5525d53ec9992abf942e153f9220ee3e000080bf4eb7523f1be32e3f80b9d53c9c1532be20c057bc682bcfbe499105bfe443403f47833fbf3e44293fca92663d000080bf2c00553ffa2b313f20731e3e0ad723be1d9e83bb6d1a873eb7467fbe7a896e3f0aae28bf2eae283fcbcbb93e000080bfaab6403fce604a3f9899193e0ad723be6d562fbba344c63b5c5384be2e4c773f0dd92ebf975b343f1065453e000080bf0a8d413f6d8a493fcecc4c3d0ad723be5d562fbb6b474cbc595184be6b48773f5a4235bf1c352f3fcf24323e000080bf863b533ff2db373f06d7233d0ad723befd76b4bb20a785bec91881be868b6e3f7ff434bf5f13353f3103d9bb000080bf2c00553f4b17363f5cb0d03c0ad723be23e719bc4d5413bfb57973bef94f483f498926bfce81363faf0e86be000080bfa891573fcf85333f40c0573c9d1532be78b9d5bc023142bf0fa003bf9bf1cc3ebf9f26bf997d203f513adbbe000080bf0a49573f1be32e3f38e7193c0ad723be54b0d0bc189650bf87347abea197063f8d3508bf45e22c3fb2be02bf000080bf92695a3fe6ad303f1e5b213e205b21befaaf88bb5edf833ee7e182beaa8c6e3f1cae28bf1cae283fc7cbb93e000080bf00a4403f144f4b3f0ad7233ebd3d1fbe37ca8abbb7467f3e6d1a87be7a896e3f1eae28bf1aae283fcacbb93e000080bfad93403f5d1a4c3f992a333e989919be60e2dabba482103f852d03bd2627533f923121bf4121213f7c26e93e000080bf8de73e3f37b94f3fc9503f3e9c1532be80b9d5bc54ee4e3f5025d5be5d25d53e322880be9f44cb3edb0d623f000080bf3494383ff2974d3fb9f5453e989919bea011cdbc692e5e3ff04138bd0d4afd3ea14bc8be0c460d3fd48a3c3f000080bfcea83b3ff6f7523f0ad7233e999919be77562fbb2f53843e70cae5bbc54b773fd44d34bfaedb2e3fc808463e000080bf0a8d413fba134d3fb9f5453ecfcc4cbda011cdbc692e5e3ff041383d0d4afd3e2299cfbe9fb5233f1f37273f000080bf4a574d3f72a6643f992a333ecfcc4cbd60e2dabb8af80f3fb7b20a3d9c80533f09791dbfcc512f3f9203c83e000080bf0996503fb367613f0ad7233ececc4cbd6d562fbb464b843ec021ba3cfd3c773f9c952fbf7255353f69d72a3e000080bf863b533f36c25e3f9c15323e80b9d5bc40c057bc026c063f82fdcf3e4e723f3f964229bf9b7c3f3f5e3b6d3d000080bf2c00553f2e72653fc9503f3e80b9d5bc80b9d5bc53ee4e3f5a25d53e5a25d53efd2a10bfb9be403ff35dae3e000080bf4eb7523f0cbb673f0ad7233e07d723bd0e77b4bbcdfb813e1bc5843e428c6e3fa5ea34bf5e1e353f01718ebb000080bf2c00553fdc86603f9c15323e40c057bc80b9d5bc026c063f4e723f3f82fdcf3ec6f732bf40b7263fff2897be000080bf0b49573f0cbb673f0ad7233e5cb0d0bc3ae719bcd179733e4a54133ffa4f483fb18136bf6189263fd30e86be000080bfa891573f5818633f0ad7233e3ae719bc5cb0d0bcd179733efa4f483f4a54133fac9029bf3661103f317efcbe000080bf92695a3f42f0653f9c15323ec9503fbe80b9d5bc4f25d53e55ee4ebf5725d53e78ba8fbec377a43e5589673f000080bf6a72283f7e70b23ec9503f3e9c1532be80b9d5bc54ee4e3f5025d5be5d25d53ebeeda3be2dac903e2a7c673f000080bf3a72283ff593bb3e9c15323e9d1532be40c057bc5b81ee3eb082eebe6d98403f84d907bf5b85083f78a6283f000080bfa38e2b3f93feb63eb9f5453e992a33becfcc4cbd692e5e3f064afdbef541383ddb2db2bc218f573da8957f3f000080bfec8a223fd881bd3ecbcc4c3e989919becbcc4cbd7e487f3f9b9758bda697583dd11f3fbd0f9be63d60177e3f000080bf9a60223fa8adc83eb9f5453e989919bea011cdbc692e5e3ff04138bd0d4afd3ef485f0bef35e7f3edbc9583f000080bf758d283f0c4fc63ecbcc4c3ecbcc4cbdcbcc4cbd7e487f3fa297583da297583de14e78bdb55b213e30537c3f000080bfb079213f4eeeeb3eb9f5453ecfcc4cbda011cdbc692e5e3ff041383d0d4afd3e6f6cf8be5598943e3728533f000080bf8ba6273fb28fe93ec9503f3e80b9d5bc80b9d5bc53ee4e3f5a25d53e5a25d53e45780abfbad17b3ee3e84d3f000080bfe41c273f4db0ef3eb9f5453ea011cdbccfcc4cbd692e5e3f0a4afd3eeb41383d456523bed07c443e65e6773f000080bfb530213fe65cf23ecbcc4c3ecbcc4cbd999919be7e487f3fa397583da09758bdd44e783d8d5b21be30537c3f000080bf8e80083f4eeeeb3eb9f5453ea011cdbc989919be692e5e3f0d4afd3eee4138bd2365233e8a7c44be6be6773f000080bf9337083fe65cf23ec9503f3e80b9d5bc9d1532be54ee4e3f5b25d53e5525d5be3b780a3f51d17bbef1e84d3f000080bf7c32023f4eb0ef3eb9f5453ecfcc4cbd992a33be692e5e3fea41383d064afdbe696cf83e3f9894be3b28533f000080bf0a35023fb28fe93ecbcc4c3e999919be989919be7e487f3f9e9758bd9b9758bdc61f3f3d029be6bd60177e3f000080bf7767093fa8adc83eb9f5453e989919be992a33be6a2e5e3fea4138bd044afdbeed85f03ed75e7fbedec9583f000080bff41b033f0c4fc63ec9503f3e9d1532be9c1532be55ee4e3f5625d5be4f25d5beb6eda33e1dac90be2d7c673f000080bfd387033ff693bb3eb9f5453e992a33be989919be692e5e3f064afdbeed4138bd802eb23c828e57bdaa957f3f000080bfca91093fd881bd3e992a333eb9f545be989919be064afd3e692e5ebfed4138bda981543de4abb5bc9b977f3f000080bf0e92093fe186b03e992a333eb9f545becfcc4cbd064afd3e6a2e5ebff041383dac8154bde6abb53c9b977f3f000080bf308b223fe086b03e9c15323ec9503fbe9c1532be4d25d53e57ee4ebf5525d5be4eba8f3ed677a4be5689673f000080bf0288033f7e70b23e9d15323e9c1532bec9503fbe5a25d53e4e25d5be54ee4ebf4dfa113f97aa12bf72b7163f000080bf1d30003f94feb63e9899193ecbcc4cbe999919be9e97583d7e487fbf9f9758bdf903e43dd96d3fbd7f207e3f000080bf2f68093fba50a53e9899193eb9f545be992a33bef041383d6a2e5ebf064afdbe47c97c3eebbcf0be0feb583f000080bf931c033f8eaba73e9999193ecbcc4cbecbcc4cbda297583d7e487fbfa397583d0e04e4bdd96d3f3d7d207e3f000080bf5161223fba50a53e9899193eb9f545bea011cdbcf341383d692e5ebf084afd3e78c97cbee6bcf03e0ceb583f000080bf148e283f8eaba73ecfcc4c3db9f545be9811cdbcda4138bd692e5ebf0a4afd3eff567bbeb0b0fa3e0e30563f000080bf9ba8273f5b32843ecbcc4c3dcbcc4cbecbcc4cbda39758bd7e487fbfa297583dadf606be8d8b733d504f7d3f000080bfd87b213f86d7813ecbcc4c3dcbcc4cbe989919bea39758bd7e487fbf9e9758bdbef6063e8c8b73bd4e4f7d3f000080bfb682083f86d7813ecbcc4c3db9f545be992a33beed4138bd692e5ebf064afdbe0e577b3ea9b0fabe0e30563f000080bf1937023f5b32843e0ad7233e1877b4bb06d723bdc8fb813e448c6e3f19c5843e44d526bfef7b08bd05fc413f000080bf3471773fd9a1343f0ad7233e3ae719bc5cb0d0bcd179733efa4f483f4a54133ff5043fbfc8c06dbeb2bb1f3f000080bffe677a3f7792323f9c15323e40c057bc80b9d5bc026c063f4e723f3f82fdcf3e9a443fbf91be343e870b243f000080bf0c50783f2464303f0ad7233e77562fbbcecc4cbd474b843efd3c773fcf21ba3cbd1527bf74f4203e3bbc3d3f000080bf1865753f520a363f992a333e60e2dabbcfcc4cbd8af80f3f9c80533fb8b20a3dacb121bf253bce3e2095293f000080bf6c44733fac95333f992a333e60e2dabb989919be2eea0f3f9789533f8ae40bbd0c702bbfd346f53e8646113f000080bf1002603f3482433fc9503f3e80b9d5bc80b9d5bc53ee4e3f5a25d53e5a25d53e7d8816bf5e35093f50141b3f000080bfaee1763f1be32e3fb9f5453ea011cdbccfcc4cbd692e5e3f0a4afd3eeb41383d4bf9dfbee7de373feb830a3f000080bf0a3c713fc572313f0ad7233e6d562fbb989919bea053843e984c773fe77b9ebb862b36bf836a463ecae22c3f000080bfbc22623fdaf6453fb9f5453ea011cdbc989919be692e5e3f0d4afd3eee4138bd701fddbe36d44b3f1bf1d83e000080bfaef95d3f4d5f413f0ad7233efc4775bb87751dbeb1467f3e7c896e3f621a87be3c4c2fbf677cb93e82e1213f000080bfa274613f43a2463f72a5203e465c78bb71a520bec1e2723e83d4713f631b68be21cf2fbfd9f9a73e400d263f000080bf5a56613fd3b2473f87751d3e0e4875bb0ad723be6aa6823e1f686e3f322185be170f2fbfbb56ba3effe4213f000080bf7736613fc9c1483f9c15323e40c057bc9c1532be7520ea3ec830433fcd5feabeead21abfeedc243f9de1ef3e000080bfefd75b3f1dee473fc9503f3e80b9d5bc9d1532be54ee4e3f5b25d53e5525d5beeda3abbe0220683f99fa823e000080bf91695a3f146d463f9999193e77562fbb0ad723be5362a83cf43f773fdc4c84be6b1231bffe294d3e16a0313f000080bff7be613f185f493f9899193e60e2dabb992a33beb8b20a3d9c80533f8bf80fbf793c31bf05b6d93e7c3e153f000080bff7085f3ff4034c3fcecc4c3d6d562fbb0ad723be8c29e0bc412d773fcd8584be292f2ebf89d22f3e3162363f000080bf9e1b713f01855b3fcfcc4c3d60e2dabb992a33beb7b20abd9c80533f8af80fbfcc9435bf66ccc03ebf8c183f000080bf9e656e3fdc295e3f80b9d53c40c057bc9c1532be9cf1ccbe0231423f0fa003bf0c9e34bfb2d7d23df07e333f000080bf3b8d723fc0c1623f5cb0d03c3ae719bc0ad723bea59706bf1696503f9b347abec6081cbfe55224be10c0463f000080bfd429753f5968603fcfcc4c3da011cdbcb9f545beee4138bd0b4afd3e692e5ebfe3da3abf03af133f2fbbbb3e000080bf20a66b3fc947623f80b9d53c80b9d5bcc9503fbe5825d5be5825d53e54ee4ebf586241bf3a3eac3e3ef30f3f000080bff49d703fbea7653f3ae7193c5cb0d0bc0ad723befa4f48bf4a54133fcd7973be89320bbf1f0ce4be6218363f000080bfb252783f625f643f40c0573c80b9d5bc9c1532be4d723fbf84fdcf3e026c06bfce4227bf08c89ebed4cb303f000080bf2517753f50f1653f1877b43b06d723bd0ad723be448c6ebf19c5843ecafb81be06b3b9beab5024bf02f62c3f000080bfe68a793fec05663f77562f3bcecc4cbd0ad723befd3c77bffd21ba3c3c4b84beead556be2b7927bf89053a3f000080bffe677a3f1730673f60e2da3bcfcc4cbd992a33be9c8053bfd2b20a3d8af80fbf8a08e6be7f5324bf94121f3f000080bf94e8763f31d8683fb9f5453e989919be992a33be6a2e5e3fea4138bd044afdbe566dc7bcdea77d3fe4fe07be000080bff266393f00000000c9503f3e9d1532be9c1532be55ee4e3f5625d5be4f25d5be19b5693e5b965f3f1d48dcbe000080bf546c333f20aecf3b9d15323e9c1532bec9503fbe5a25d53e4e25d5be54ee4ebf8439b83b2be3633fbe3fe9be000080bf546c333fa84f9b3c992a333e989919beb9f545be044afd3eea4138bd6a2e5ebf051025bdec137f3f12d098bd000080bff266393f48db923c992a333ecfcc4cbdb9f545be064afd3eed41383d6a2e5ebf4a10253dec137f3f28d0983d000080bf5c68523f48db923cb9f5453ecfcc4cbd992a33be692e5e3fea41383d064afdbe806dc73cdea77d3fecfe073e000080bf5c68523f00000000c9503f3e80b9d5bc9d1532be54ee4e3f5b25d53e5525d5be6da913be3558533f9faa0b3f000080bffa62583f40aecf3b9c15323e80b9d5bcc9503fbe4e25d53e5a25d53e54ee4ebf3952863c49ac623fedcded3e000080bffa62583fb84f9b3c9c15323e40c057bc9c1532be7520ea3ec830433fcd5feabe0ba1cebd7d4e0e3fa33a533f000080bf1b9e5b3fb84f9b3c9899193e60e2dabb992a33beb8b20a3d9c80533f8bf80fbf8cabd2bbbb18103f8596533f000080bf773d5d3fb8512d3d9899193ecbcc4cbdcbcc4cbe9997583da697583d7e487fbf16558b3baea27f3f97d0593d000080bf5c68523fb8512d3d9999193e989919becbcc4cbe9d97583d9d9758bd7e487fbf3f528bbbaea27f3f89d059bd000080bff266393fb4512d3d9899193ea011cdbcb9f545bef041383d0d4afd3e692e5ebf0000000032685e3f338bfd3e000080bf9da6583fb8512d3dcfcc4c3da011cdbcb9f545beee4138bd0b4afd3e692e5ebfd3147e3b496d5e3f6177fd3e000080bf9da6583f175a0f3ecfcc4c3d60e2dabb992a33beb7b20abd9c80533f8af80fbf8eabd23bba18103f8596533f000080bf773d5d3f175a0f3ecbcc4c3dcbcc4cbdcbcc4cbea09758bda297583d7e487fbf01548bbbaea27f3f8ed0593d000080bf5c68523f175a0f3e80b9d53c80b9d5bcc9503fbe5825d5be5825d53e54ee4ebf18a6923dd8b9663f1cc6da3e000080bffa62583f8d44273e9899193e992a33beb9f545bef041383d064afdbe6a2e5ebf0000000035685e3f2e8bfdbe000080bfb028333fb4512d3d9c15323ec9503fbe9c1532be4d25d53e57ee4ebf5525d5be56faf53d7db3003f59265bbf000080bf3331303fb04f9b3c9899193eb9f545be992a33bef041383d6a2e5ebf064afdbe8fa3493ceac5fd3ebf515ebf000080bfd6912e3fb4512d3dcbcc4c3db9f545be992a33beed4138bd692e5ebf064afdbe87a349bcebc5fd3ebd515ebf000080bfd6912e3f175a0f3ecbcc4c3d992a33beb9f545beeb4138bd064afdbe6a2e5ebf0000000034685e3f308bfdbe000080bfb028333f175a0f3ecbcc4c3d999919becbcc4cbe9e9758bda09758bd7e487fbf50558b3baea27f3f91d059bd000080bff266393f175a0f3e78b9d53c9d1532bec9503fbe5125d5be5525d5be57ee4ebf0535b8bb28e3633fcb3fe9be000080bf546c333f8e44273e78b9d53cc9503fbe9c1532be5825d5be57ee4ebf4925d5be5bfaf5bd78b3003f5c265bbf000080bf3231303f8e44273ea011cd3ccfcc4cbdb9f545be084afdbefb41383d692e5ebf3c1025bdec137f3f2dd0983d000080bf5c68523f1a53283e9811cd3c989919beb9f545be064afdbed54138bd6a2e5ebf4310253dec137f3f16d098bd000080bff266393f1b53283e20c0573c9c1532be9d1532be509042bf3566ebbedb2eebbefaf274be28e55a3fb98cebbe000080bf546c333f1331343e40e2da3b989919be992a33be205f53bf673708bd0c2c10bf43fd273d08f97d3fc71ff3bd000080bff266393f84ae3a3e60e2da3bcfcc4cbd992a33be9c8053bfd2b20a3d8af80fbfa9a425bd34f77d3fba00f43d000080bf5c68523f83ae3a3e40c0573c80b9d5bc9c1532be4d723fbf84fdcf3e026c06bf1679343e1650623feda7dd3e000080bffa62583f1231343ecbcc4c3dcbcc4cbecbcc4cbda39758bd7e487fbfa297583deb207f3f609765bd179c77bd000080bf0fb87d3f57cd063dcfcc4c3db9f545be9811cdbcda4138bd692e5ebf0a4afd3e486b7b3f752c04bed36e0cbe000080bf41087c3f5138173c80b9d53cc9503fbe78b9d5bc5325d5be54ee4ebf5525d53e3c0b5b3f86ce00bf2d77f8bd000080bfccb0763fe2ef3a3ca011cd3cb9f545becbcc4cbd084afdbe692e5ebff341383d81835d3f7f51febed3278abd000080bfae22783f59b20b3d9811cd3cb9f545be989919be084afdbe692e5ebfdb4138bd194b5e3f68a7fbbe6e0e88bd000080bfba2f7a3f287f063ecbcc4c3dcbcc4cbe989919bea39758bd7e487fbf9e9758bdd47d7f3f7cb950bda6b417bd000080bf1bc57f3fe845053e78b9d53cc9503fbe9c1532be5825d5be57ee4ebf4925d5bed18e643f6b6ce6be9e4b9bbc000080bfecb8793f72df1e3ecbcc4c3db9f545be992a33beed4138bd692e5ebf064afdbed6c97e3ff72fa7bd95eb573d000080bf7a1b7f3fa7be1e3e40e2da3b992a33be989919be9c8053bf89f80fbf94b20abd491e103f365852bfaf9db6bd000080bfd6b7733f4ca0083e40c0573c9d1532be78b9d5bc023142bf0fa003bf9bf1cc3e85e9063fdc6a58bff78fb2bd000080bf0023723f9fec523c80b9d53c9c1532be20c057bc682bcfbe499105bfe443403ff67b2f3f4d7637bfeba103be000080bf4427743f0000000060e2da3b992a33becbcc4cbd9c8053bf8af80fbfc5b20a3d91b30e3f921d53bfb95fc4bd000080bfcaaa713fec36143d6d562f3b0ad723becbcc4cbd432d77bfc28584beb129e03c26b0823e065376bf5b66c2bd000080bff7536e3fd7151a3d38e7193c0ad723be54b0d0bc189650bf87347abea197063fab38703edfde77bfc400b1bd000080bfe4026f3f2cfa5e3c5d562f3b0ad723be999919be3a3f77bf6e4c84bef7f4acbcc2b8843e540d76bfe16bc2bd000080bf0361703f08180a3e20c0573c9c1532be9d1532be509042bf3566ebbedb2eebbe1b5a0f3ffa6d52bf8781d4bd000080bf222b753f405f203e78b9d53c9d1532bec9503fbe5125d5be5525d5be57ee4ebf06ba413fedc526bf7d1a5ebd000080bf14b7773fc2eb2c3e5572893b0ad723becd171fbe71666ebf0cfa84be78da82be21f4943ea0c873bff918bdbd000080bfdac1703fdf650f3e40e2da3b989919be992a33be205f53bf673708bd0c2c10bffac5fc3d03177cbfc680fbbd000080bfefd66f3f67c5233e05678b3bb9e522be073320be75c073bfd60153bed11c67beeb5d6d3e0add77bfe360c0bd000080bfc7a0703f788e103e65e8893bda6c21bedb6c21be783571bfaf2171bedcf973be43f7863ee4c775bf8aa3bfbd000080bf4864703f97e1113e5062843bc9881ebe0ad723be7a896ebf721a87beab467fbe5ed7963e736f73bf6cd1c1bd000080bff3e96f3fe47d143e54562f3b989919be0ad723be234c77bf65a4c9bb575384be176c253d71b47dbf956902be000080bf54d36e3f54f7143e77562f3bcecc4cbd0ad723befd3c77bffd21ba3c3c4b84beb3fe363b9cc47ebf6699c8bd000080bf773d5d3faf1d1e3e60e2da3bcfcc4cbd992a33be9c8053bfd2b20a3d8af80fbf6c67ba3cb9d07ebfa533bfbd000080bf12415e3fc2eb2c3e - m_CompressedMesh: - m_Vertices: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_UV: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Normals: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Tangents: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Weights: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_NormalSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_TangentSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_FloatColors: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_BoneIndices: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_Triangles: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_UVInfo: 0 - m_LocalAABB: - m_Center: {x: 0, y: 0, z: -0.09999999} - m_Extent: {x: 0.19999997, y: 0.19999997, z: 0.09999999} - m_MeshUsageFlags: 0 - m_BakedConvexCollisionMesh: - m_BakedTriangleCollisionMesh: - m_MeshMetrics[0]: 1.6879306 - m_MeshMetrics[1]: 1 - m_MeshOptimizationFlags: 1 - m_StreamData: - serializedVersion: 2 - offset: 0 - size: 0 - path: ---- !u!1 &1401794267 + m_EditorClassIdentifier: + serializedGuid: + serializedGuid: c4a99b4c0ca9cb45a73a8f0d59cbc130 + uniqueName: LightSabre Origin + tags: [] +--- !u!1 &1222594155 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1222594156} + - component: {fileID: 1222594158} + - component: {fileID: 1222594157} + m_Layer: 8 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1222594156 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1222594155} + m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 134998304} + m_Father: {fileID: 1521703297} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!23 &1222594157 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1222594155} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 5984489a6c8753743953c8d64d3265fb, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1222594158 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1222594155} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1241623309 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -9405,382 +8739,327 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1401794268} - - component: {fileID: 1401794269} + - component: {fileID: 1241623310} + - component: {fileID: 1241623318} + - component: {fileID: 1241623317} + - component: {fileID: 1241623316} + - component: {fileID: 1241623315} + - component: {fileID: 1241623314} + - component: {fileID: 1241623313} + - component: {fileID: 1241623312} + - component: {fileID: 1241623311} m_Layer: 0 - m_Name: LeftHand + m_Name: Ball m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1401794268 +--- !u!4 &1241623310 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1401794267} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_GameObject: {fileID: 1241623309} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.5, y: 2.125, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1809129953} - - {fileID: 1701227370} - - {fileID: 637860737} - m_Father: {fileID: 1389664210} + m_Children: [] + m_Father: {fileID: 813701130} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1401794269 +--- !u!114 &1241623311 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1401794267} + m_GameObject: {fileID: 1241623309} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 41cc12ba1114e4f46929730a9389cb74, type: 3} + m_Script: {fileID: 11500000, guid: 428efa2c1665b6745bfa9c1ec2026c93, type: 3} m_Name: m_EditorClassIdentifier: - baseController: {fileID: 1809129952} - teleportController: {fileID: 1701227369} - uiController: {fileID: 637860736} - teleportModeActivate: {fileID: 1263111715868034790, guid: c348712bda248c246b8c49b3db54643f, type: 3} - teleportModeCancel: {fileID: 737890489006591557, guid: c348712bda248c246b8c49b3db54643f, type: 3} - uiModeActivate: {fileID: 1201092935185683357, guid: c348712bda248c246b8c49b3db54643f, type: 3} - turn: {fileID: 1010738217276881514, guid: c348712bda248c246b8c49b3db54643f, type: 3} - move: {fileID: 6972639530819350904, guid: c348712bda248c246b8c49b3db54643f, type: 3} - translateAnchor: {fileID: 7779212132400271959, guid: c348712bda248c246b8c49b3db54643f, type: 3} - rotateAnchor: {fileID: -7363382999065477798, guid: c348712bda248c246b8c49b3db54643f, type: 3} - selectState: - enabled: 0 - m_ID: 1 - onEnter: - m_PersistentCalls: - m_Calls: [] - onUpdate: - m_PersistentCalls: - m_Calls: [] - onExit: - m_PersistentCalls: - m_Calls: [] - teleportState: - enabled: 0 - m_ID: 2 - onEnter: - m_PersistentCalls: - m_Calls: [] - onUpdate: - m_PersistentCalls: - m_Calls: [] - onExit: - m_PersistentCalls: - m_Calls: [] - interactState: - enabled: 0 - m_ID: 3 - onEnter: - m_PersistentCalls: - m_Calls: [] - onUpdate: - m_PersistentCalls: - m_Calls: [] - onExit: - m_PersistentCalls: - m_Calls: [] - uiState: - enabled: 0 - m_ID: 4 - onEnter: - m_PersistentCalls: - m_Calls: [] - onUpdate: - m_PersistentCalls: - m_Calls: [] - onExit: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &1405161006 -GameObject: + lockOnParentObjectLock: 1 + grabStarted: + m_PersistentCalls: + m_Calls: [] + grabEnded: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1241623312 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1405161007} - - component: {fileID: 1405161008} - m_Layer: 0 - m_Name: Input Action Manager - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1405161007 -Transform: + m_GameObject: {fileID: 1241623309} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 573907d717ac4934eb429f2f5978a132, type: 3} + m_Name: + m_EditorClassIdentifier: + lockOnParentObjectLock: 1 + touchStarted: + m_PersistentCalls: + m_Calls: [] + touchEnded: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1241623313 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1405161006} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1314738492} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1405161008 + m_GameObject: {fileID: 1241623309} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d1bcb89c5e4474247b7923fe1388ad1a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 1 + m_DistanceCalculationMode: 1 + m_SelectMode: 0 + m_FocusMode: 1 + m_CustomReticle: {fileID: 0} + m_AllowGazeInteraction: 0 + m_AllowGazeSelect: 0 + m_OverrideGazeTimeToSelect: 0 + m_GazeTimeToSelect: 0.5 + m_OverrideTimeToAutoDeselectGaze: 0 + m_TimeToAutoDeselectGaze: 3 + m_AllowGazeAssistance: 0 + m_FirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_LastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_FirstSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_LastSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_FirstFocusEntered: + m_PersistentCalls: + m_Calls: [] + m_LastFocusExited: + m_PersistentCalls: + m_Calls: [] + m_FocusEntered: + m_PersistentCalls: + m_Calls: [] + m_FocusExited: + m_PersistentCalls: + m_Calls: [] + m_Activated: + m_PersistentCalls: + m_Calls: [] + m_Deactivated: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_StartingInteractionStrengthFilters: [] + m_OnFirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnLastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectCanceled: + m_PersistentCalls: + m_Calls: [] + m_OnActivate: + m_PersistentCalls: + m_Calls: [] + m_OnDeactivate: + m_PersistentCalls: + m_Calls: [] + m_AttachTransform: {fileID: 0} + m_SecondaryAttachTransform: {fileID: 0} + m_UseDynamicAttach: 0 + m_MatchAttachPosition: 1 + m_MatchAttachRotation: 1 + m_SnapToColliderVolume: 1 + m_ReinitializeDynamicAttachEverySingleGrab: 1 + m_AttachEaseInTime: 0.15 + m_MovementType: 1 + m_VelocityDamping: 1 + m_VelocityScale: 1 + m_AngularVelocityDamping: 1 + m_AngularVelocityScale: 1 + m_TrackPosition: 1 + m_SmoothPosition: 0 + m_SmoothPositionAmount: 5 + m_TightenPosition: 0.5 + m_TrackRotation: 1 + m_SmoothRotation: 0 + m_SmoothRotationAmount: 5 + m_TightenRotation: 0.5 + m_TrackScale: 1 + m_SmoothScale: 0 + m_SmoothScaleAmount: 8 + m_TightenScale: 0.1 + m_ThrowOnDetach: 1 + m_ThrowSmoothingDuration: 0.25 + m_ThrowSmoothingCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ThrowVelocityScale: 1.5 + m_ThrowAngularVelocityScale: 1 + m_ForceGravityOnDetach: 0 + m_RetainTransformParent: 1 + m_AttachPointCompatibilityMode: 0 + m_StartingSingleGrabTransformers: [] + m_StartingMultipleGrabTransformers: [] + m_AddDefaultGrabTransformers: 1 + isTouchable: 1 + isGrabbable: 1 + isUsable: 0 +--- !u!114 &1241623314 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1405161006} + m_GameObject: {fileID: 1241623309} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 017c5e3933235514c9520e1dace2a4b2, type: 3} + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: - m_ActionAssets: - - {fileID: -944628639613478452, guid: c348712bda248c246b8c49b3db54643f, type: 3} ---- !u!1 &1423653692 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1423653693} - - component: {fileID: 1423653694} - m_Layer: 0 - m_Name: Collider (5) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1423653693 -Transform: + serializedGuid: + serializedGuid: 0e1969c09cdcd146a3bba4ccd6b6b3bd + uniqueName: Ball + tags: [] +--- !u!54 &1241623315 +Rigidbody: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1423653692} - m_LocalRotation: {x: -0.27059805, y: -0.27059805, z: 0.6532815, w: 0.6532815} - m_LocalPosition: {x: 0.177, y: 0, z: -0.171} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 660021081} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: -45, z: 90} ---- !u!136 &1423653694 -CapsuleCollider: + m_GameObject: {fileID: 1241623309} + serializedVersion: 2 + m_Mass: 0.01 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!135 &1241623316 +SphereCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1423653692} - m_Material: {fileID: 0} + m_GameObject: {fileID: 1241623309} + m_Material: {fileID: 13400000, guid: fb001adfa2edbb64887889d74d6fe41e, type: 2} m_IsTrigger: 0 m_Enabled: 1 - m_Radius: 0.02 - m_Height: 0.2 - m_Direction: 1 + serializedVersion: 2 + m_Radius: 0.12 m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &1431980069 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1431980070} - m_Layer: 0 - m_Name: Middle_0_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1431980070 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1431980069} - m_LocalRotation: {x: 0.037149172, y: -0.0391672, z: -0.020477412, w: 0.9983319} - m_LocalPosition: {x: -0.062340543, y: -0.00000025370625, z: -0.00000015303492} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1633826910} - m_Father: {fileID: 1856484991} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1445845521 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1445845522} - m_Layer: 0 - m_Name: Little_Tip_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1445845522 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1445845521} - m_LocalRotation: {x: 0.000000022351742, y: 0.000000014901163, z: -0.00000002793968, w: 1} - m_LocalPosition: {x: -0.017860297, y: 0.00000007152557, z: -0.00000015258789} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1269771531} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1457759946 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1457759948} - - component: {fileID: 1457759947} - m_Layer: 0 - m_Name: XR Interaction Manager - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1457759947 -MonoBehaviour: +--- !u!23 &1241623317 +MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1457759946} + m_GameObject: {fileID: 1241623309} m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3} - m_Name: - m_EditorClassIdentifier: - m_StartingHoverFilters: [] - m_StartingSelectFilters: [] ---- !u!4 &1457759948 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1457759946} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1314738492} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1458059542 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1458059543} - m_Layer: 0 - m_Name: AttachTransform - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1458059543 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1458059542} - m_LocalRotation: {x: 0.36650118, y: 0, z: 0, w: 0.9304176} - m_LocalPosition: {x: 0.0447, y: -0.0476, z: 0.0131} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 109444418} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 43, y: 0, z: 0} ---- !u!1 &1471223337 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1471223338} - - component: {fileID: 1471223339} - m_Layer: 0 - m_Name: TransformerInside - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1471223338 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1471223337} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0, y: 1.2, z: 1.125} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1192304054} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1471223339 -MonoBehaviour: + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a2e88723e4cd77a4690d0637321940aa, type: 2} + - {fileID: 2100000, guid: 1862d8e21d2bba649b255c6a7eb4eb61, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1241623318 +MeshFilter: m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1471223337} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: TransformerInside - tags: [] ---- !u!1 &1502566883 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1241623309} + m_Mesh: {fileID: 6935877506589290101, guid: 1eef6eb71f126ba4aa31d33bb2f810c5, type: 3} +--- !u!1 &1268751233 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -9788,31 +9067,31 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1502566884} - m_Layer: 0 - m_Name: Index_0_Left + - component: {fileID: 1268751234} + m_Layer: 8 + m_Name: Anchor m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1502566884 +--- !u!4 &1268751234 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1502566883} - m_LocalRotation: {x: 0.039005104, y: -0.077951096, z: -0.09432525, w: 0.9917182} - m_LocalPosition: {x: -0.059387933, y: -0.00000024288892, z: 0.0000000011920929} + m_GameObject: {fileID: 1268751233} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.01, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1011798184} - m_Father: {fileID: 1640516631} + - {fileID: 1731060433} + m_Father: {fileID: 232339300} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1507460096 +--- !u!1 &1275973670 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -9820,93 +9099,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1507460097} - - component: {fileID: 1507460098} + - component: {fileID: 1275973671} m_Layer: 0 - m_Name: Light + m_Name: Little_Tip_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1507460097 +--- !u!4 &1275973671 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1507460096} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0, y: 1.511, z: 1.142} + m_GameObject: {fileID: 1275973670} + m_LocalRotation: {x: 0.000000022351742, y: 0.000000014901163, z: -0.00000002793968, w: 1} + m_LocalPosition: {x: -0.017860297, y: 0.00000007152557, z: -0.00000015258789} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 535679137} + m_Father: {fileID: 1418001335} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!108 &1507460098 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1507460096} - m_Enabled: 1 - serializedVersion: 10 - m_Type: 2 - m_Shape: 0 - m_Color: {r: 1, g: 0, b: 1, a: 1} - m_Intensity: 4 - m_Range: 1 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 0 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 6570 - m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 - m_ShadowRadius: 0 - m_ShadowAngle: 0 ---- !u!1 &1508614846 +--- !u!1 &1289966972 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -9914,31 +9130,31 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1508614847} + - component: {fileID: 1289966973} m_Layer: 0 - m_Name: Thumb_Palm_Left + m_Name: Little_Palm_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1508614847 +--- !u!4 &1289966973 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1508614846} - m_LocalRotation: {x: -0.7044048, y: 0.08700629, z: 0.3122117, w: 0.6314806} - m_LocalPosition: {x: -0.042795867, y: -0.014722028, z: 0.029782485} + m_GameObject: {fileID: 1289966972} + m_LocalRotation: {x: 0.99290055, y: -0.033564012, z: 0.11202527, w: 0.02173406} + m_LocalPosition: {x: -0.048623275, y: 0.0027686262, z: -0.026522674} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1882010424} - m_Father: {fileID: 961598098} - m_RootOrder: 4 + - {fileID: 1466462400} + m_Father: {fileID: 1909973946} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1518198309 +--- !u!1 &1307398687 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -9946,31 +9162,31 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1518198310} + - component: {fileID: 1307398688} m_Layer: 0 - m_Name: Little_0_Left + m_Name: Little_1_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1518198310 +--- !u!4 &1307398688 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1518198309} - m_LocalRotation: {x: -0.018601296, y: 0.022547437, z: -0.058639184, w: 0.99785125} - m_LocalPosition: {x: -0.056403197, y: -0.00000059507784, z: 0.0000003004074} + m_GameObject: {fileID: 1307398687} + m_LocalRotation: {x: 0.0012706812, y: -0.0023152584, z: -0.06524572, w: 0.99786574} + m_LocalPosition: {x: -0.033131722, y: 0.00000038266182, z: -0.00000061273573} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1633289441} - m_Father: {fileID: 487514512} + - {fileID: 795450758} + m_Father: {fileID: 2110589559} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1521703296 +--- !u!1 &1336895284 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -9978,86 +9194,304 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1521703297} - m_Layer: 8 - m_Name: Anchor + - component: {fileID: 1336895285} + - component: {fileID: 1336895289} + - component: {fileID: 1336895288} + - component: {fileID: 1336895287} + - component: {fileID: 1336895286} + m_Layer: 0 + m_Name: Right UI Controller m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1521703297 +--- !u!4 &1336895285 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1521703296} + m_GameObject: {fileID: 1336895284} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0.01, z: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1222594156} - m_Father: {fileID: 815556419} - m_RootOrder: 0 + - {fileID: 676405892} + m_Father: {fileID: 697578261} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1525491573 -GameObject: +--- !u!114 &1336895286 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1525491574} - - component: {fileID: 1525491575} - - component: {fileID: 1525491579} - - component: {fileID: 1525491578} - - component: {fileID: 1525491577} - - component: {fileID: 1525491576} - m_Layer: 0 - m_Name: Snap Zone Stairs (2) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1525491574 -Transform: + m_GameObject: {fileID: 1336895284} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LineWidth: 0.02 + m_OverrideInteractorLineLength: 1 + m_LineLength: 10 + m_AutoAdjustLineLength: 0 + m_MinLineLength: 0.5 + m_UseDistanceToHitAsMaxLineLength: 1 + m_LineRetractionDelay: 0.5 + m_LineLengthChangeSpeed: 12 + m_WidthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_SetLineColorGradient: 1 + m_ValidColorGradient: + serializedVersion: 2 + key0: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 0} + key1: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 1} + key2: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 1} + key3: {r: 0, g: 0, b: 0, a: 1} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 32768 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 32768 + atime2: 65535 + atime3: 65535 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 3 + m_InvalidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.39215687, b: 0.18431373, a: 0} + key1: {r: 1, g: 0.39215687, b: 0.18431373, a: 1} + key2: {r: 1, g: 0.39215687, b: 0.18431373, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 32768 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 32768 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 3 + m_BlockedColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + key1: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_TreatSelectionAsValidState: 0 + m_SmoothMovement: 0 + m_FollowTightness: 10 + m_SnapThresholdDistance: 10 + m_Reticle: {fileID: 0} + m_BlockedReticle: {fileID: 0} + m_StopLineAtFirstRaycastHit: 1 + m_StopLineAtSelection: 0 + m_SnapEndpointIfAvailable: 1 + m_LineBendRatio: 0.5 + m_OverrideInteractorLineOrigin: 1 + m_LineOriginTransform: {fileID: 0} + m_LineOriginOffset: 0 +--- !u!120 &1336895287 +LineRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1525491573} - m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0.8, z: 2.2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 790520236} - m_Father: {fileID: 33704422} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} ---- !u!114 &1525491575 + m_GameObject: {fileID: 1336895284} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 5 + m_Positions: [] + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.02 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 1, a: 1} + key1: {r: 0, g: 0, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 4 + numCapVertices: 4 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 1 + m_Loop: 0 +--- !u!114 &1336895288 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1525491573} - m_Enabled: 1 + m_GameObject: {fileID: 1336895284} + m_Enabled: 0 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc6efdd45e6a00744aaf4c68264d6d7c, type: 3} + m_Script: {fileID: 11500000, guid: 203357f2f04686b4c860a9361fd12c36, type: 3} m_Name: m_EditorClassIdentifier: - m_InteractionManager: {fileID: 0} + m_InteractionManager: {fileID: 2089871579} m_InteractionLayerMask: serializedVersion: 2 - m_Bits: 4294967295 + m_Bits: 32 m_InteractionLayers: - m_Bits: 1 - m_AttachTransform: {fileID: 790520236} + m_Bits: 32 + m_AttachTransform: {fileID: 676405892} m_KeepSelectedTargetValid: 1 m_DisableVisualsWhenBlockedInGroup: 1 m_StartingSelectedInteractable: {fileID: 0} @@ -10088,121 +9522,314 @@ MonoBehaviour: m_OnSelectExited: m_PersistentCalls: m_Calls: [] - m_ShowInteractableHoverMeshes: 1 - m_InteractableHoverMeshMaterial: {fileID: 0} - m_InteractableCantHoverMeshMaterial: {fileID: 0} - m_SocketActive: 1 - m_InteractableHoverScale: 1 - m_RecycleDelayTime: 1 - m_HoverSocketSnapping: 0 - m_SocketSnappingRadius: 0.1 - m_SocketScaleMode: 0 - m_FixedScale: {x: 1, y: 1, z: 1} - m_TargetBoundsSize: {x: 1, y: 1, z: 1} - shownHighlightObject: {fileID: 919132149155446097, guid: 3cd7c532cc585b54795fadfe1b32fc53, type: 3} - ShowHighlightInEditor: 1 - highlightMeshMaterial: {fileID: 2100000, guid: 34211d2175b5963469d4deb504fbcbaf, type: 2} - validationMaterial: {fileID: 2100000, guid: c6c888b079480654fbf337e7fe50b405, type: 2} - invalidMaterial: {fileID: 2100000, guid: 69e2b61a70de44f48909a564a7cf9c62, type: 2} - previewMesh: {fileID: 862649805} ---- !u!65 &1525491576 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1525491573} - m_Material: {fileID: 0} - m_IsTrigger: 1 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 0.4, y: 0.4, z: 0.2} - m_Center: {x: 0, y: 0, z: -0.1} ---- !u!114 &1525491577 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1525491573} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 557aaed036734781b129d67ec56c9366, type: 3} - m_Name: - m_EditorClassIdentifier: - acceptedProcessSceneObjects: - - {fileID: 587381668} - - {fileID: 102893243} ---- !u!114 &1525491578 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1525491573} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: eb7be990fff0a2142a874601356b26df, type: 3} - m_Name: - m_EditorClassIdentifier: - lockOnParentObjectLock: 1 - objectAttached: + m_SelectActionTrigger: 1 + m_HideControllerOnSelect: 0 + m_AllowHoveredActivate: 0 + m_TargetPriorityMode: 0 + m_PlayAudioClipOnSelectEntered: 0 + m_AudioClipForOnSelectEntered: {fileID: 0} + m_PlayAudioClipOnSelectExited: 0 + m_AudioClipForOnSelectExited: {fileID: 0} + m_PlayAudioClipOnSelectCanceled: 0 + m_AudioClipForOnSelectCanceled: {fileID: 0} + m_PlayAudioClipOnHoverEntered: 0 + m_AudioClipForOnHoverEntered: {fileID: 0} + m_PlayAudioClipOnHoverExited: 0 + m_AudioClipForOnHoverExited: {fileID: 0} + m_PlayAudioClipOnHoverCanceled: 0 + m_AudioClipForOnHoverCanceled: {fileID: 0} + m_AllowHoverAudioWhileSelecting: 1 + m_PlayHapticsOnSelectEntered: 0 + m_HapticSelectEnterIntensity: 0 + m_HapticSelectEnterDuration: 0 + m_PlayHapticsOnSelectExited: 0 + m_HapticSelectExitIntensity: 0 + m_HapticSelectExitDuration: 0 + m_PlayHapticsOnSelectCanceled: 0 + m_HapticSelectCancelIntensity: 0 + m_HapticSelectCancelDuration: 0 + m_PlayHapticsOnHoverEntered: 0 + m_HapticHoverEnterIntensity: 0 + m_HapticHoverEnterDuration: 0 + m_PlayHapticsOnHoverExited: 0 + m_HapticHoverExitIntensity: 0 + m_HapticHoverExitDuration: 0 + m_PlayHapticsOnHoverCanceled: 0 + m_HapticHoverCancelIntensity: 0 + m_HapticHoverCancelDuration: 0 + m_AllowHoverHapticsWhileSelecting: 1 + m_LineType: 0 + m_BlendVisualLinePoints: 1 + m_MaxRaycastDistance: 30 + m_RayOriginTransform: {fileID: 0} + m_ReferenceFrame: {fileID: 0} + m_Velocity: 16 + m_Acceleration: 9.8 + m_AdditionalGroundHeight: 0.1 + m_AdditionalFlightTime: 0.5 + m_EndPointDistance: 30 + m_EndPointHeight: -10 + m_ControlPointDistance: 10 + m_ControlPointHeight: 5 + m_SampleFrequency: 20 + m_HitDetectionType: 0 + m_SphereCastRadius: 0 + m_ConeCastAngle: 6 + m_RaycastMask: + serializedVersion: 2 + m_Bits: 32 + m_RaycastTriggerInteraction: 1 + m_RaycastSnapVolumeInteraction: 1 + m_HitClosestOnly: 0 + m_HoverToSelect: 0 + m_HoverTimeToSelect: 0.5 + m_AutoDeselect: 0 + m_TimeToAutoDeselect: 3 + m_EnableUIInteraction: 1 + m_BlockUIOnInteractableSelection: 1 + m_AllowAnchorControl: 1 + m_UseForceGrab: 1 + m_RotateSpeed: 180 + m_TranslateSpeed: 1 + m_AnchorRotateReferenceFrame: {fileID: 0} + m_AnchorRotationMode: 0 + m_UIHoverEntered: m_PersistentCalls: m_Calls: [] - objectDetached: + m_UIHoverExited: m_PersistentCalls: m_Calls: [] - lockOnUnsnap: 1 ---- !u!114 &1525491579 + m_EnableARRaycasting: 0 + m_OccludeARHitsWith3DObjects: 0 + m_OccludeARHitsWith2DObjects: 0 + m_ScaleMode: 0 +--- !u!114 &1336895289 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1525491573} + m_GameObject: {fileID: 1336895284} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} + m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} m_Name: m_EditorClassIdentifier: - uniqueName: Sliced Cube (1)_SnapZone_1 - tags: [] ---- !u!1 &1527860101 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1527860102} - m_Layer: 0 - m_Name: Station Transform - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1527860102 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1527860101} - m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071068} - m_LocalPosition: {x: -3, y: 0, z: 6} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 815556419} - - {fileID: 597715543} - - {fileID: 1192304054} - - {fileID: 632093760} - m_Father: {fileID: 0} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0} ---- !u!1 &1583804100 + m_UpdateTrackingType: 0 + m_EnableInputTracking: 1 + m_EnableInputActions: 0 + m_ModelPrefab: {fileID: 0} + m_ModelParent: {fileID: 820468471} + m_Model: {fileID: 0} + m_AnimateModel: 0 + m_ModelSelectTransition: + m_ModelDeSelectTransition: + m_PositionAction: + m_UseReference: 1 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -3326005586356538449, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_RotationAction: + m_UseReference: 1 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 5101698808175986029, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_IsTrackedAction: + m_UseReference: 0 + m_Action: + m_Name: Is Tracked + m_Type: 1 + m_ExpectedControlType: + m_Id: fc9b37cc-fd6c-4777-a440-ecfac6144601 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 1 + m_Reference: {fileID: 0} + m_TrackingStateAction: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: + m_Id: 90359750-2287-4286-aed5-46e8351830e5 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_SelectAction: + m_UseReference: 1 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 187161793506945269, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_SelectActionValue: + m_UseReference: 1 + m_Action: + m_Name: Select Action Value + m_Type: 0 + m_ExpectedControlType: + m_Id: 6010ccb0-bc96-4f14-8cec-bb81835a63eb + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 4766120400929042988, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_ActivateAction: + m_UseReference: 1 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 83097790271614945, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_ActivateActionValue: + m_UseReference: 1 + m_Action: + m_Name: Activate Action Value + m_Type: 0 + m_ExpectedControlType: + m_Id: a770f569-5289-4c4d-ba37-79e50efe54ee + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -3285721481334498719, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_UIPressAction: + m_UseReference: 1 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 3279264004350380116, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_UIPressActionValue: + m_UseReference: 0 + m_Action: + m_Name: UI Press Action Value + m_Type: 0 + m_ExpectedControlType: + m_Id: 532b2b0b-2859-4882-a216-c5bbec06b0ec + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_UIScrollAction: + m_UseReference: 0 + m_Action: + m_Name: UI Scroll + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: c0c98540-834b-4be6-88b6-b84f677a5c16 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_HapticDeviceAction: + m_UseReference: 1 + m_Action: + m_Name: Haptic Device + m_Type: 0 + m_ExpectedControlType: + m_Id: 9ad5ff42-2240-49bb-89c4-c981d3c023eb + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -8222252007134549311, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_RotateAnchorAction: + m_UseReference: 1 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -5913262927076077117, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_DirectionalAnchorRotationAction: + m_UseReference: 0 + m_Action: + m_Name: Directional Anchor Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 8a29bfec-f245-4960-a581-9483a94f70d0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_TranslateAnchorAction: + m_UseReference: 1 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 875253871413052681, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_ScaleToggleAction: + m_UseReference: 0 + m_Action: + m_Name: Scale Toggle + m_Type: 1 + m_ExpectedControlType: + m_Id: 26da0e49-599a-47eb-82d6-0a15fae0d588 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ScaleDeltaAction: + m_UseReference: 0 + m_Action: + m_Name: Scale Delta + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: afa73a20-c36b-49cf-9c5a-b1e356d4be1d + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ButtonPressPoint: 0.5 +--- !u!1 &1338586624 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -10210,45 +9837,31 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1583804101} - - component: {fileID: 1583804102} + - component: {fileID: 1338586625} m_Layer: 0 - m_Name: TransformerOutside + m_Name: Index_0_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1583804101 +--- !u!4 &1338586625 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1583804100} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 1.2, z: -0.25} - m_LocalScale: {x: 0.4, y: 0.4, z: 0.4} + m_GameObject: {fileID: 1338586624} + m_LocalRotation: {x: 0.039005104, y: -0.077951096, z: -0.09432525, w: 0.9917182} + m_LocalPosition: {x: -0.059387933, y: -0.00000024288892, z: 0.0000000011920929} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1192304054} - m_RootOrder: 1 + m_Children: + - {fileID: 740016310} + m_Father: {fileID: 628411316} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1583804102 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1583804100} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: TransformerOutside - tags: [] ---- !u!1 &1612617675 +--- !u!1 &1352490007 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -10256,31 +9869,31 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1612617676} + - component: {fileID: 1352490008} m_Layer: 0 - m_Name: Index_Palm_Left + m_Name: Index_1_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1612617676 +--- !u!4 &1352490008 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1612617675} - m_LocalRotation: {x: 0.9956038, y: -0.056100972, z: -0.070293866, w: -0.026165245} - m_LocalPosition: {x: -0.05402496, y: 0.0060563944, z: 0.02002304} + m_GameObject: {fileID: 1352490007} + m_LocalRotation: {x: 0.0029770152, y: -0.0028722505, z: -0.046370056, w: 0.9989158} + m_LocalPosition: {x: -0.033406343, y: 0.00000032424927, z: -0.00000019073485} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 163224875} - m_Father: {fileID: 2053954419} + - {fileID: 512971542} + m_Father: {fileID: 189572713} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1633289440 +--- !u!1 &1359767050 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -10288,31 +9901,45 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1633289441} + - component: {fileID: 1359767051} + - component: {fileID: 1359767052} m_Layer: 0 - m_Name: Little_1_Left + m_Name: Collider (1) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1633289441 +--- !u!4 &1359767051 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1633289440} - m_LocalRotation: {x: 0.0012706812, y: -0.0023152584, z: -0.06524572, w: 0.99786574} - m_LocalPosition: {x: -0.033131722, y: 0.00000038266182, z: -0.00000061273573} + m_GameObject: {fileID: 1359767050} + m_LocalRotation: {x: 0.27059805, y: 0.27059805, z: 0.6532815, w: 0.6532815} + m_LocalPosition: {x: 0.1617, y: 0, z: 0.18} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1216485171} - m_Father: {fileID: 1518198310} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1633826909 + m_Children: [] + m_Father: {fileID: 660021081} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 45, z: 90} +--- !u!136 &1359767052 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1359767050} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.02 + m_Height: 0.2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &1364604469 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -10320,62 +9947,63 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1633826910} + - component: {fileID: 1364604472} + - component: {fileID: 1364604471} + - component: {fileID: 1364604470} m_Layer: 0 - m_Name: Middle_1_Left + m_Name: PROCESS_CONFIGURATION m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1633826910 -Transform: +--- !u!114 &1364604470 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1633826909} - m_LocalRotation: {x: 0.0013464622, y: -0.0029157132, z: -0.22192244, w: 0.9750591} - m_LocalPosition: {x: -0.039041024, y: 0.0000006005168, z: 0.00000011503696} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1844665381} - m_Father: {fileID: 1431980070} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1637849899 -GameObject: + m_GameObject: {fileID: 1364604469} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 215a8bb6dc630a44299469418bc73e6f, type: 3} + m_Name: + m_EditorClassIdentifier: + extensionAssembliesWhitelist: [] + defaultConfettiPrefab: Confetti/Prefabs/MindPortConfettiMachine +--- !u!114 &1364604471 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1637849900} - m_Layer: 0 - m_Name: Sphere - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1637849900 + m_GameObject: {fileID: 1364604469} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2ef5789d95ab46e095b834b7c4789068, type: 3} + m_Name: + m_EditorClassIdentifier: + runtimeConfigurationName: VRBuilder.Core.Configuration.DefaultRuntimeConfiguration, + VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + selectedProcessStreamingAssetsPath: Processes/Demo - Core Features/Demo - Core + Features.json + processStringLocalizationTable: +--- !u!4 &1364604472 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1637849899} + m_GameObject: {fileID: 1364604469} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1.2, z: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 632093760} + m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1640516630 +--- !u!1 &1390163569 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -10383,31 +10011,194 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1640516631} + - component: {fileID: 1390163570} m_Layer: 0 - m_Name: Index_Palm_Left + m_Name: Index_Tip_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1640516631 +--- !u!4 &1390163570 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1640516630} - m_LocalRotation: {x: 0.9956038, y: -0.056100972, z: -0.070293866, w: -0.026165245} - m_LocalPosition: {x: -0.05402496, y: 0.0060563944, z: 0.02002304} + m_GameObject: {fileID: 1390163569} + m_LocalRotation: {x: 0.000000029802326, y: 9.492409e-15, z: 0.00000031851238, w: 1} + m_LocalPosition: {x: -0.02301526, y: 0.000000085830685, z: -0.000000114440915} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1502566884} - m_Father: {fileID: 961598098} + m_Children: [] + m_Father: {fileID: 2109031085} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1656508553 +--- !u!43 &1390574009 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + serializedVersion: 10 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 2532 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 779 + localAABB: + m_Center: {x: 0, y: 0, z: -0.09999999} + m_Extent: {x: 0.19999997, y: 0.19999997, z: 0.09999999} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 0 + m_KeepVertices: 0 + m_KeepIndices: 0 + m_IndexFormat: 0 + m_IndexBuffer: 00000100020003000400050006000700080009000a000b000b000c0009000b000d000c000e000c000d000d000f000e0010000e000f00110010000f001200100011001200110013001400120013001400130015001600140015001600150017001800160017001800170019001a0011000f001b00180019001b0019001c000f001d001a001e001d000f001f001e000f000f0020001f001b001c00210022001b00210023002200210024002300210024002500230021002600240027002800290029002a00270029002b002a0029002c002b002c002d002b002e002a002b002b002f002e002f0030002e00300031002e0032002e00310033003200310033003100340034003500330035003400360037003500360036003800370034003900360034003a00390030003b003c003b003d003c003b003e003d003e003f003d003e0040003f00400041003f0040004200410042004300410042004400430044004500430044004600450046004700450046004800470048004900470048004a00490049004a004b004b004c0049004a004d004b004d004a00480048004e004d0048004f004e0050005100520052005300500052005400530050005300550055005300540054005600550056005700550055005800500055005900580059005a00580059005b005a005b005c005a005c005d005a005c005e005d005e005f005d005e0060005f00600061005f0060006200610062006300610062006400630064003200630065006600670067006600680068006900670066006a0068006a006b0068006b006c0068006b006d006c006b006e006d006e006f006d006f0070006d006f00710070006f00720071007200730071007200740073007400750073007400760075007700760078007800790077007a00780076007a0076007b007b007c007a007d007a007c007d007c007e007e007f007d007d007f008000800081007d0080008200810082008300810082008400830084008500830083008600810086008700810085008800830088008900830085008a0088008a008b0088008b008c0088008b008d008c008d008e008c008e008f008c008d0090008e00900091008e0091009000920093008e0091009100940093009500960097009700980095009800990095009a009900980098009b009a009b009c009a009b009d009c009d009e009c009d009f009e009b00a0009d009b00a100a0009d00a2009f009d00a300a200a200a4009f00a200a500a400a200a600a500a600a700a500a600a800a700a600a900a800a800aa00a700a800ab00aa00ac00aa00ab00ad00a700aa00aa00ae00ad00af00b000b100b100b200af00b200b300af00b200b400b300b400b500b300b400b600b500b700b800b900ba00bb00bc00bd00be00bf00c000c100c200c300c400c500c600c700c800c900ca00cb00cc00cd00ce00cf00d000d100cf00d100d200d200d300cf00d300d200d400d300d400d500d500d400d600d500d600d700d500d700d800d900cf00d300d500d900d300da00d500d800da00d800db00db00dc00da00db00dd00dc00db00de00dd00d500da00df00da00e000df00d500df00e100d500e100d900d900e200cf00cf00e200e300e400e200d900e100e400d900e400e500e200e600e100df00e100e600e400e600df00e700e800e600e700e800e900e600e400e600e900e900e800ea00e900ea00eb00ec00e900eb00e500e400ed00e400e900ed00ec00ed00e900e500ed00ee00ed00ec00ef00ed00ef00ee00f000f100f200f000f300f100f300f000f400f500f300f400f400f000f600f400f600f700f400f800f500f400f700f900fa00f800f400f400f900fa00fa00fb00f800f900fc00fa00fb00fa00fc00f900fd00fc00fe00fb00fc00ff00fe00fc000001ff00fc00fc00fd00010102010001fc000301fc000101fc000301020103010101040105010301040106010201030105010701030106010301070108010601070108010701090109010a0108010b010a0109010b0109010c010d010e010f010d010f01100111010d011001110112010d01110113011201110114011301150113011401160115011401170111011001170114011101180110010f01170110011801160114011901170119011401160119011a0116011a011b01190117011c0119011c011a0118011c0117011c011d011a0118010f011e011e010f011f011e011f01200121011e012001220118011e01210122011e01180123011c012201230118012101240122012301220124012101250124011c0126011d0126011c0123012301240127012601230127012701240128012701280129012a01270129012a01260127012a011d0126012a012b011d012c012d012e012c012e012f0130012c012f01300131012c01300132013101300133013201340133013001340130012f0134013501330136012f012e0134012f01360136012e01370136013701380139013501340139013a0135013b0134013601360138013b013b01390134013b0138013c013d013c0138013d013e013c013c013e013f0140013c013f013b013c0140013b01410139013b014001410140014201410140014301420140013f014301390141014401390144013a014201440141013a01440145013a014501460144014701450142014701440148014701420149014801420142014a0149014b014a0142014b01420143014b0143013f014c014b013f014d014c013f014e014d013f014f014e013f013f0150014f0151015201530153015401510151015401550151015501560151015601570156015501580158015901560158015a0159015a015b0159015a015c015b015d015e015f015f0160015d01600161015d0160016201610160016301620162016301640164016501620165016401660165016601670165016701680165016801690169016a01650169016b016a0169016c016b016b016c016d016e016b016d016d016f016e016f0170016e01700171016e016f0172017001700172017301730174017001730175017401730176017501770178017901770179017a017b0177017a017b017c0177017b017d017c017b017e017d017f017d017e0180017f017e0181017b017a0181017e017b0182017a01790181017a01820180017e018301810183017e01800183018401800184018501830181018601830186018401820186018101860187018401820179018801880179018901880189018a018b0188018a018c01820188018b018c01880182018d0186018c018d0182018b018e018c018d018c018e018b018f018e01860190018701900186018d018d018e01910190018d01910191018e0192019101920193019401910193019401900191019401870190019401950187019601970198019601980199019a01960199019a019b0196019a019c019b019a019d019c019e019d019a019e019a0199019e019f019d01a001990198019e019901a001a0019801a101a001a101a201a3019f019e01a301a4019f01a5019e01a001a001a201a501a501a3019e01a501a201a601a701a601a201a701a801a601a601a801a901a501a601aa01aa01a601a901a501ab01a301a501aa01ab01a301ac01a401a301ab01ac01aa01ad01ab01ad01ac01ab01a401ac01ae01a401ae01af01ac01b001ae01ad01b001ac01aa01a901b101aa01b101ad01b201b001ad01b101b201ad01b201b301b001b101b401b201b401b101a901b401a901b501b601b701b801b901b601b801b801ba01b901bb01b901ba01bb01bc01b901bd01bc01bb01be01bd01bb01bf01be01bb01bb01c001bf01c101bf01c001c001c201c101c301c001bb01ba01c301bb01ba01b801c401b801c501c401ba01c401c601ba01c601c301c301c701c001c001c701c801c901c701c301c601c901c301c901ca01c701cb01c601c401c601cb01c901cb01c401cc01cd01cb01cc01cd01ce01cb01c901cb01ce01c901ce01cf01cf01ca01c901cf01d001ca01d101d201d301d101d301d401d501d101d401d501d601d101d501d701d601d501d801d701d401d901d501d801d501d901d401da01d901da01d401d301d901db01d801d301dc01da01dd01dc01d301dd01d301de01df01d801db01db01e001df01e001e101df01e101e201df01e201e301df01e401df01e301e401e301e501e201e601e301e301e701e501e801e301e601e301e801e701e601e901e801e801ea01e701e901eb01e801e801ec01ea01e801eb01ec01ed01ee01ef01ed01ef01f001ed01f001f101ed01f101f201f101f301f201f101f401f301f001ef01f501f501f601f001f601f101f001ef01f701f501f801f701ef01f801f901f701f601fa01f101f101fa01fb01f101fb01fc01f101fc01fd01f401f101fd01f401fd01fe01fe01ff01f401fe010002ff01fe01010200020202f401ff0100020202ff0102020302f401000204020202000205020402000206020502060200020102010207020602080209020a020a020b0208020b020a020c020c020a020d020e0208020b020e020f0208020f020e021002100211020f0212020e020b02120210020e020b020c02130212020b021302100214021102140215021102140216021502140217021602180217021402180214021902180219021a021a021b0218021a021c021b021d0213020c021d020c021e021d021e021f021d021f022002210213021d0221021d022002210212021302210220022202220223022102220224022302210223022502210225021202120225021002250226021002270228022902270229022a022b0227022a022b022c0227022b022d022c022b022e022d022f022d022e0230022f022e0231022b022a0231022e022b0232022a02290231022a02320230022e023302310233022e02300233023402300234023502330231023602330236023402320236023102360237023402320229023802380229023902380239023a023b0238023a023c02320238023b023c02380232023d0236023c023d0232023b023e023c023d023c023e023b023f023e02360240023702400236023d023d023e02410240023d02410241023e0242024102420243024402410243024402400241024402370240024402450237024602470248024602480249024a024602490249024b024a024c024a024b024c024b024d024c024d024e024f024e024d024f0250024e024e0251024c024e02500252024e025302510253024e025202530254025102530255025402530256025502570256025302530252025802590258025202590252025a02580259025b02530258025c0258025b025c02570253025d0253025c025d0257025d025e025c025e025d025e025f0257025e0260025f02610260025e0261025e0262025e02630262025c0263025e025b0263025c025b0264026302650266026702650267026802650268026902650269026a026a0269026b026a026b026c026d026b02690268026d026902680267026e0267026f026e0268026e027002680270026d026d0271026b026b0271027202730271026d02700273026d02730274027102750270026e0270027502730275026e02760277027502760277027802750273027502780273027802790279027402730279027a0274027b027c027d027b027d027e027b027e027f027b027f0280027f02810280027f02820281027e027d028302830284027e0284027f027e02840285027f027f028502860282027f0286028602870282028702880282028702890288027d028a0283027d028b028a028b027d028c028c027d028d028c028d028e028c028f028b028c028e02900291028f028c028c0290029102910292028f0290029302910292029102930290029402930295029202930293029402960293029702950296029702930296029802970299029a029b029c029a0299029d029a029c029d029e029a029e029d029f029e029f02a0029f02a102a0029f02a202a102a2029f02a3029d02a3029f02a202a302a402a302a502a402a302a602a502a602a302a7029d02a702a302a602a702a802a702a902a802aa02a7029d02aa029d029c02a702aa02a902ab02aa029c02ab02a902aa02ab029c02ac029c029902ac02ab02ad02a902ad02ae02a902af02ad02ab02af02ab02ac02af02b002ad02b102ac029902af02ac02b102b1029902b202b102b202b302b102b302b402af02b102b402af02b402b502b502b002af02b502b602b002b702b802b902ba02b702b902b902bb02ba02bc02ba02bb02bb02b902bd02bb02bd02be02bc02bf02ba02bb02be02c002bb02c002bc02c102bf02bc02c202c102bc02c302c202bc02c002c402bc02bc02c402c302c002c502c402c602c302c402c402c702c602c802c602c702c802c702c902c802c902ca02ca02cb02c802cc02ca02c902cc02cd02ca02ce02cb02ca02ca02cd02cf02ce02ca02cf02d002ce02cf02d102d002cf02cf02d202d102d302d402d502d302d502d602d702d302d602d702d802d302d702d902d802d702da02d902db02d902da02dc02db02da02dd02d702d602dd02da02d702de02d602d502dd02d602de02dc02da02df02dd02df02da02dc02df02e002dc02e002e102df02dd02e202df02e202e002de02e202dd02e202e302e002de02d502e402e402d502e502e402e502e602e702e402e602e802de02e402e702e802e402de02e902e202e802e902de02e702ea02e802e902e802ea02e702eb02ea02e202ec02e302ec02e202e902e902ea02ed02ec02e902ed02ed02ea02ee02ed02ee02ef02f002ed02ef02f002ec02ed02f002e302ec02f002f102e302f202f302f402f202f402f502f202f502f602f202f602f702f702f602f802f702f802f902fa02f802f602f502fa02f602f502f402fb02f402fc02fb02f502fb02fd02f502fd02fa02fe02fd02fb02fe02fa02fd02fb02ff02fe02fe020003fa02fa020103f8020103fa020003f80201030203000303030103040301030303030305030403050306030403060307030403070308030403040308030903040309030a03 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 779 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 24 + format: 0 + dimension: 4 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 40 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 37392 + _typelessdata: 77562f3bcecc4cbd0ad723be000000000000803f00000000000000000000803f00000000000080bf0b98ec3e00ab133f54562f3b989919be0ad723be000000000000803f000000000000803f0000000000000000000080bf5005083f5a07023f54562f3bcecc4c3d0ad723be000000000000803f000000000000803f0000000000000000000080bf7325c93ea64e253f6b562fbbcccc4c3d0ad723be000000000000803f00000000000000000000803f000000000000803f3242c73ede5b243f60562fbb9999193e0ad723be000000000000803f00000000000080bf00000000000000000000803f9bcfa33e84ff353f60562fbbcecc4cbd0ad723be000000000000803f00000000000080bf00000000000000000000803fcab4ea3e37b8123fcecc4c3d0ad723be5d562fbb000000000000803f00000000000000000000803f00000000000080bf4247a33ef3efa83e999919be0ad723be5d562fbb000000000000803f00000000000000000000803f00000000000080bf0ae0a63e36e2ef3ececc4cbd0ad723be6d562fbb000000000000803f00000000eea07ebf00000000e8b2d3bd000080bfa613a53e1469cc3e235b21be235b213e37b088bb54e524bf496a423f4a4bbbbdb877acbcc9b6d03d2f9c7e3f000080bfdd683c3e6d37253f0ad723bec33d1f3e6eca8abb267f73bfeaeb9c3e9a2c17bd1663ecbbcb97c73d50c67e3f000080bfb6443c3eeff3253f0ad723be78c31f3e000000001b807dbff0b80d3e248888bcec4b3bbb5386cb3d50bb7e3f000080bf6085403ef8ec253f27731ebe0ad7233e639e83bbf8b9babecaff6d3f341754bdaf66afbb69335b3d25a17f3f000080bfa2a73c3ec05a243fa7081fbe0ad7233e00000000b1527bbd08827f3f2bbb0ebce17549bb5be70b3c4efd7f3f000080bf6aab403e6f80243f999919be0ad7233e74562fbb000000000000803f000000006f0b473c000000002afb7f3f000080bfd4fe3d3e753b233f672c1d3e0ad7233e00000000668ee83d1c587e3f000000002639873c8047f7baf4f67f3f000080bf6aab403eb228b63ecccc4cbd0ad7233e74562fbb000000000000803f000000004015473c000000002afb7f3f000080bfd4fe3d3e91740b3fcbcc4c3d0ad7233e74562fbb000000000000803f000000005ce4463c000000002cfb7f3f000080bfd4fe3d3e5a5be73e07d723bd0ad7233e0e77b4bb000000000000803f000000009424473c000000002afb7f3f000080bf342a3b3ec811093f06d7233d0ad7233e0e77b4bb000000000000803f000000004202473c000000002afb7f3f000080bf342a3b3e8b18ec3e54b0d0bc0ad7233e3ae719bc000000000000803f00000000610c473c000000002afb7f3f000080bfd247373ec59a053f54b0d03c0ad7233e3ae719bc000000000000803f00000000a833473c0000000028fb7f3f000080bfd247373e11fbf23e2de719bc0ad7233e5cb0d0bc000000000000803f000000005c17473c000000002afb7f3f000080bffc34273e07bc013f23e7193c0ad7233e5cb0d0bc000000000000803f000000003814473c000000002afb7f3f000080bffc34273ef888fa3efd76b4bb0ad7233e07d723bd000000000000803f00000000e20b473c000000002afb7f3f000080bf49b0183ebdc4003ff376b43b0ad7233e07d723bd000000000000803f000000000b0c473c000000002afb7f3f000080bf49b0183e934cfc3e9999193e0ad7233e74562fbb000000000000803f0000000010f6463c000000002cfb7f3f000080bfd4fe3d3e92cdb73e66562fbb0ad7233ececc4cbd000000000000803f00000000f510473c000000002afb7f3f000080bf80b10e3ef810003f59562f3b0ad7233ececc4cbd000000000000803f000000008c16473c000000002afb7f3f000080bf80b10e3e8896fd3e672c1d3e0ad7233eb01a70bbee55fd3e5f775e3f00000000a6048b3ced4e1ebc81f37f3f000080bff5013d3e4723b63ef558203ef558203e62d46dbb67733d3fec2c2c3f000000004cff9a3c8a8caabc11e67f3f000080bf3eea3c3e1531b53e0ad7233e2b811c3e1cfb63bbe3ad543f8f7d0e3f00000000f9b77d3c3159bdbca3e67f3f000080bfd5ec3c3ec126b43e0ad7233e2b811c3e00000000b2887d3f46ca0d3e00000000f9d7523b0b81bcbc4fee7f3f000080bff666403ee62bb43e74562f3b0ad7233e989919be000000000000803f000000008615473c000000002afb7f3f000080bfb0f62a3d9a02fd3e66562fbb0ad7233e999919be000000000000803f00000000b421473c000000002afb7f3f000080bfb0f62a3d018eff3e9e7289bb0ad7233ed4171fbed13ca5bc263d7e3f793aecbdf7aad0bd5ddde63d03077d3f000080bf3484153d801f003f628091b90ad7233e64cb1fbe72db2cbd8d8c643f0da6e5bea064d2bcfa47e53e4acd643f000080bf20c7123d2461fe3e24678bbbcde5223ef83220be5015b0bddfd72e3f0fb139bf4d974fbe9069333f16152f3f000080bf880f113d9034003fa9ec933b0ad7233ec73f20be0ec12cbd5daf633fbb0ee9be291402bcdf1ae93e72eb633f000080bfb000113d2319fc3e6fe889bbdb6c213edb6c21be72ac91bd2c0f233f828244bfb02a173fe1e417bfb60b0cbf000080bfad8fa03e0713373f24678bbbcde5223ef83220be5015b0bddfd72e3f0fb139bf9421163f3dca0dbf414d17bf000080bf1209a03ee451373f628091b90ad7233e64cb1fbe72db2cbd8d8c643f0da6e5bebe721b3f03ccaabed89a38bf000080bfb61ca13ee22f383f606284bbca881e3e0ad723bef1d71abdc954ad3e81b070bfc0a02c3f968a2fbf1d4c8cbe000080bf169fa13e329b363fdb078d3b0a7d1f3e0ad723bee4b63fbd7e9bd63efb1d68bf58fe293f5b402abf81f5aebe000080bf1a3ca43edc3f383fa9ec933b0ad7233ec73f20be0ec12cbd5daf633fbb0ee9bef9371b3f24bcadbeaa1c38bf000080bf79cda23e4d09393f33d2913bcddf213eccdf21bebebb91bd1f0f233f5f8244bf554b173f15d017bf03ff0bbf000080bfe175a33eb3af383f60562fbb9999193e0ad723be0000000000000000000080bf0f96343f947335bf00000000000080bf9bcfa33e84ff353f77562f3b9999193e0ad723be0000000000000000000080bf0a96343f987335bf00000000000080bfdcb2a53e4df2363f54562f3bcecc4c3d0ad723be0000000000000000000080bf8495343f207435bf00000000000080bf7325c93ea64e253f54562f3b989919be0ad723be0000000000000000000080bf1596343f8f7335bf00000000000080bf5005083f5a07023f60562fbbcecc4cbd0ad723be0000000000000000000080bfdf95343fc27335bf00000000000080bfcab4ea3e37b8123f6b562fbb999919be0ad723be0000000000000000000080bf1396343f917335bf00000000000080bfb013073f9114013f5062843bc9881ebe0ad723be76a3293d53e4bdbe68816dbfa2622c3fc4f52cbf48ad993e000080bf931d093fac6b013fc3078dbb097d1fbe0ad723be97b1233d003db7be22d36ebf019d2a3f67a32fbf4860953e000080bf11cf073f058eff3e16c890390ad723be6ccb1fbe86e02a3deb3b65bfaeece2bedbaa1b3f9690a8becbee383f000080bfb45e093fd9adff3e1cd291bbcddf21beccdf21be1eab913d010f23bfaa8244bf542b173faee417bf3b0b0c3f000080bf2e32083f56aefe3e93ec93bb0ad723bec73f20be191cdc3c59e774bf677894befac2233fc56953bebc893d3f000080bf6286083f22fbfd3e05678b3bb9e522be073320be14319f3dda5928bff7d33fbfe4b2163fe38913bf511d113f000080bf92e8093ffdb4003f65e8893bda6c21bedb6c21be37c3913dec0e23bf738244bff001173fbffc17bfc51d0c3f000080bf48a5093fd7f3003feb76b43b0ad7233d0ad723be0000000000000000000080bf9095343f117435bf00000000000080bfaab0cd3e940b243f77562f3bcecc4cbd0ad723be0000000000000000000080bff695343fac7335bf00000000000080bf0b98ec3e00ab133f1877b43b06d723bd0ad723be0000000000000000000080bfff95343fa47335bf00000000000080bf570cea3e0fef153f21e7193c57b0d03c0ad723be0000000000000000000080bf0e96343f947335bf00000000000080bfbf35d43efe2b223f3ae7193c5cb0d0bc0ad723be0000000000000000000080bfb295343ff17335bf00000000000080bf3345e63e4c2f193f54b0d03c2de7193c0ad723be0000000000000000000080bffc95343fa87335bf00000000000080bf6495df3e792f223f5cb0d03c3ae719bc0ad723be0000000000000000000080bfea95343fb87335bf00000000000080bf3d3ee63e1fdf1e3f04d7233d0677b43b0ad723be0000000000000000000080bf1096343f927335bf00000000000080bfde15e63e0b13243f07d7233d0e77b4bb0ad723be0000000000000000000080bf1f96343f837335bf00000000000080bf68fde93ea821223fcbcc4c3d6b562f3b0ad723be0000000000000000000080bfdf95343fc47335bf00000000000080bffc9dea3ee558253fcecc4c3d6d562fbb0ad723be0000000000000000000080bfc195343fe17335bf00000000000080bf8e83ec3e4567243f9899193e60562f3b0ad723be0000000000000000000080bfd795343fcb7335bf00000000000080bfa4f2063f3012373f9999193e77562fbb0ad723be0000000000000000000080bfb195343ff17335bf00000000000080bf6de5073f9020363fd18d1d3e2600773b0ad723beb7e1e93ece0f503db15b63bfdca62a3f9d3d2ebfe19d9b3e000080bf646f073fc4f2373f87751d3e0e4875bb0ad723be3a6ddc3eba1d71bd969166bf2ba1273fc9992abf7e8eb63e000080bf08c0083f5e9b363faefb1d3e151886320ad723be3103293f320a38bca44140bf50c3093fcac130bf8f80f73e000080bf522d083f985b373f0ad7233efc4775bb87751dbe474a5a3fc7f090bde38004bf0ab9cc3efb980cbf87db3b3f000080bf6ad9093f19b6373f72a5203e465c78bb71a520be9f2e343f45c2c4bd8c2e34bf18e10c3f96830dbf3732203f000080bfb64e093f7726373f0ad7233efdfb8932aefb1dbe980d7c3fb799deba661c33be539f063e7a0527bf86113f3f000080bf992f093f1b5f383f0ad7233e1300773bd08d1dbef820593f82cf6f3d6ec806bfc4c9e23e9e9e1fbf1dec243f000080bf9784083f4c09393fbeb1203ef00d7a3bc0b120be1576343f51bba03df17534bf7216193f2ba719bf38fb073f000080bfc2f7073f0580383fd38d1dbe530077bb0ad723bec716ddbeacae44bd319366bf78dc2c3f9ae32dbf5f3593be000080bf75fba43e1914003fc1b120be1b0e7abbc1b120bead7734bf7bd69fbd877734bf6202193ff8b819bfaffd07bf000080bfb8eaa33eb10dff3e0ad723be410077bbd28d1dbedb4a5abf567b6cbdd5e904bfd880df3e79ea1fbf16c125bf000080bf0ed1a23e23fbfd3eb1fb1dbe151886320ad723beb5f228bf1aefd13bd55340bfbe4c0a3f5add30bf11fef5be000080bf967fa33e46ab003f0ad723befcfb8932b0fb1dbe990a7cbf5d49433b675b33be9708063e5ae926bfb7303fbf000080bf0a7ba13e864fff3e8b751dbe2048753b0ad723be68ece6beab987c3debef63bf3d57253f187d2abfa31fbfbe000080bf2c5aa23e806b013f0ad723be0f48753b89751dbee0e058bfe968933d87c206bf526cd03eab7b0cbf76ec3abf000080bf6827a03ec450003f73a520be555c783b72a520be092e34bf820fc53dd42d34bfb3e80c3ff26d0dbfa43e20bf000080bfd03ca13e67e0003f999919be6d562fbb0ad723be0000000000000000000080bf2796343f7c7335bf00000000000080bff4f4a53eadf4003f999919be6b562f3b0ad723be0000000000000000000080bf1896343f8b7335bf00000000000080bf620fa43e4ee6013fcccc4cbd77562fbb0ad723be0000000000000000000080bfdf95343fc37335bf00000000000080bf413cc93ef9ad123fcecc4cbd60562f3b0ad723be0000000000000000000080bfd595343fcd7335bf00000000000080bfaf56c73e999f133f09d723bdfd76b43b0ad723be0000000000000000000080bfd095343fd17335bf00000000000080bfd4dcc93e35e5153f05d723bd1877b4bb0ad723be0000000000000000000080bfe895343fba7335bf00000000000080bf5fc4cd3ed3f3133f57b0d0bc2de7193c0ad723be0000000000000000000080bf0e96343f947335bf00000000000080bf009ccd3ec027193f54b0d0bc3ae719bc0ad723be0000000000000000000080bf0996343f9a7335bf00000000000080bfd844d43e65d7153f2de719bc54b0d03c0ad723be0000000000000000000080bfbf95343fe27335bf00000000000080bf0a95cd3e92d71e3f2be719bc5cb0d0bc0ad723be0000000000000000000080bf1d96343f857335bf00000000000080bf7da4df3ee0da153f0677b4bb05d7233d0ad723be0000000000000000000080bff195343fb27335bf00000000000080bfe6cdc93ecf17223ff576b4bb0ad723bd0ad723be0000000000000000000080bf3596343f6e7335bf00000000000080bf9229e63e4afb133f6b562fbbcccc4c3d0ad723be0000000000000000000080bffc95343fa77335bf00000000000080bf3242c73ede5b243f05678b3bb9e522be073320be14319f3dda5928bff7d33fbfae3e06bf5bbd1c3f8f7b17bf000080bf74ebf03efcd3b83e5572893b0ad723becd171fbe824ea53cc53c7ebf4154ecbdbec494be8e3ed63d997c73bf000080bf575df03e802cb93e16c890390ad723be6ccb1fbe86e02a3deb3b65bfaeece2be03d390bda132e13e993165bf000080bffec6f03e5290ba3e60562fbb0ad723be989919be00000000000080bf000000000000000000000000000080bf000080bf15cfed3e7b9cbb3e93ec93bb0ad723bec73f20be191cdc3c59e774bf677894be7e2809bc9368943e130075bf000080bfce15f13e5743bc3e5d562f3b0ad723be999919be00000000000080bf000000000000000000000000000080bf000080bf74b6ed3e90b6b93e6d562f3b0ad723becbcc4cbd00000000000080bf000000000000000000000000000080bf000080bf2ec4bb3e97b8b93e6b562fbb0ad723bececc4cbd00000000000080bf000000000000000000000000000080bf000080bfd2dcbb3e839ebb3e0677b4bb0ad723be06d723bd00000000000080bf000000000000000000000000000080bf000080bf3aebb63ee39fbc3e0677b43b0ad723be07d723bd00000000000080bf000000000000000000000000000080bf000080bf84b8b63ea0b7b83e38e7193c0ad723be54b0d0bc00000000000080bf000000000000000000000000000080bf000080bf6265af3e0357b73e2de719bc0ad723be5cb0d0bc00000000000080bf000000000000000000000000000080bf000080bfe1bbaf3e1601be3e57b0d0bc0ad723be38e719bc00000000000080bf000000000000000000000000000080bf000080bfbafda73ec4b5c33e5cb0d03c0ad723be23e719bc00000000000080bf000000000000000000000000000080bf000080bf2913a73efda2b13e0ad723bd0ad723be0677b4bb00000000000080bf000000000000000000000000000080bf000080bfb54fa63ee8dcc83e06d7233d0ad723befd76b4bb00000000000080bf000000000000000000000000000080bf000080bf65dfa43e027cac3ececc4cbd0ad723be6d562fbb00000000000080bf000000000000000000000000000080bf000080bfa613a53e1469cc3ececc4c3d0ad723be5d562fbb00000000000080bf000000000000000000000000000080bf000080bf4247a33ef3efa83e999919be0ad723be5d562fbb00000000000080bf000000000000000000000000000080bf000080bf0ae0a63e36e2ef3e6c2c1dbe0ad723be00000000835d95bd77517fbf000000000000000000000000000080bf000080bf059aa53e2c1ff13e6c2c1dbe0ad723bede1a70bb3755fdbe94775ebf000000000000000000000000000080bf000080bf786ea73e191ff13e9e081f3e0ad723be000000004e4f0f3ef56d7dbfc2c5a2bc334405bd13467d3c77d57fbf000080bf5a0ca03e0195833e9899193e0ad723be6d562fbb00000000000080bf000000000000000000000000000080bf000080bfde7aa13ed376853e20731e3e0ad723be1d9e83bb38bbba3e88ff6dbfde1754bd256915bd022d293d6d9c7fbf000080bf8e10a23eb6c8833e0ad7233e71c31fbe00000000ba917f3f18cf6bbd5f2be3bb56c7a4bb5dca073d25db7fbf000080bf1209a03e7d83803e1e5b213e205b21befaaf88bb5ae5243f446a42bfac4bbbbd7eac84bd4e0e853d96eb7ebf000080bf7022a23e0dec813e0ad7233ebd3d1fbe37ca8abbf27e733f32ed9cbe5b2d17bd2a47eabc8246013d88c47fbf000080bffc28a23e6055803e0ad7233e999919be77562fbb0000803f00000000000000000000000000000000000080bf000080bfde7aa13e78c87c3e0ad7233e2b811c3e00000000b2887d3f46ca0d3e000000000000000000000000000080bf000080bf0297a53e08111d3d0ad7233ececc4cbd6d562fbb0000803f00000000000000000000000000000000000080bf000080bf4247a33e0647363e0ad7233ecccc4c3d77562fbb0000803f00000000000000000000000000000000000080bf000080bfa613a53e248bdf3d0ad7233e07d723bd0e77b4bb0000803f00000000000000000000000000000000000080bf000080bf65dfa43ef6392f3e0ad7233e5cb0d0bc3ae719bc0000803f00000000000000000000000000000000000080bf000080bf2913a73e12fc243e0ad7233e9999193e6d562fbb0000803f00000000000000000000000000000000000080bf000080bf0ae0a63e7810253d0ad7233e2b811c3e1cfb63bbe3ad543f8f7d0e3f000000000000000000000000000080bf000080bfce53a73e74101d3d0ad7233e54b0d03c3ae719bc0000803f00000000000000000000000000000000000080bf000080bfbafda73efb0f013e0ad7233e05d7233d1877b4bb0000803f00000000000000000000000000000000000080bf000080bfb54fa63ecca4ed3d0ad7233e3ae719bc5cb0d0bc0000803f00000000000000000000000000000000000080bf000080bf6265af3edaa4193e0ad7233e1877b4bb06d723bd0000803f00000000000000000000000000000000000080bf000080bf84b8b63ed4e6163e0ad7233e2de7193c5cb0d0bc0000803f00000000000000000000000000000000000080bf000080bfe1bbaf3ee5650c3e0ad7233e77562fbbcecc4cbd0000803f00000000000000000000000000000000000080bf000080bf2ec4bb3e46e7143e0ad7233e60562f3bcecc4cbd0000803f00000000000000000000000000000000000080bf000080bfd1dcbb3e7921113e0ad7233efd76b43b07d723bd0000803f00000000000000000000000000000000000080bf000080bf3aebb63ebc220f3e0ad7233e6d562fbb989919be0000803f00000000000000000000000000000000000080bf000080bf72b6ed3e36e3143e0ad7233efdfb8932aefb1dbe980d7c3fb799deba661c33be6f1c33be00000000b00d7cbf000080bf12e6ef3e2200133e0ad7233efc4775bb87751dbe474a5a3fc7f090bde38004bf100e04bfae492e3d6d0a5bbf000080bf6893ef3eb1a3153e0ad7233e6b562f3b999919be0000803f00000000000000000000000000000000000080bf000080bf16cfed3e681d113e0ad7233e1300773bd08d1dbef820593f82cf6f3d6ec806bf567506bffd9315bd3fa559bf000080bfd6c1ef3ee257103ef85820bef75820be9ed46dbb78733dbfdc2c2cbf0000000075cb01bd75d10e3d39b77f3f000080bf789b2d3faae97e3e6c2c1dbe0ad723bede1a70bb3755fdbe94775ebf0000000022701fbd188fb53c39be7f3f000080bf018c2d3f73c1813e6c2c1dbe0ad723be00000000835d95bd77517fbf00000000268f0bbd094a233bbed97f3f000080bf02762e3f87d7813e0ad723be2e811cbe00000000a6cd7fbfe58620bd00000000ea5f03bb3459513d37aa7f3f000080bfd6912e3f98057a3e0ad723be2e811cbe52fb63bb4efc5ebfc680fbbe000000009abacdbcd366363d4daa7f3f000080bfa5b32d3fa9db793e0ad723be989919be59562fbb000080bf0000000000000000000000006ea7873d13707f3f000080bff4e62d3f3fe2773e0ad723be78c31f3e000000001b807dbff0b80d3e248888bc262bf2bb21c4893dc2697f3f000080bfd6912e3fd87ff73c0ad723bececc4cbd6d562fbb000080bf00000000000000000000000096a5873d17707f3f000080bff4e62d3f16f3303e0ad723bececc4c3d59562fbb000080bf000000000000000000000000a2ab873d0b707f3f000080bff4e62d3fd407d43d0ad723be0ad723bd0677b4bb000080bf000000000000000000000000e6a2873d1d707f3f000080bf13322d3f09b9293e0ad723be5cb0d0bc36e719bc000080bf0000000000000000000000001da6873d17707f3f000080bfdc392c3f853c1f3e0ad723be9999193e6d562fbb000080bf000000000000000000000000bfa5873d17707f3f000080bff4e62d3f00530c3d0ad723bec33d1f3e6eca8abb267f73bfeaeb9c3e9a2c17bd50cb80bc370a923d0c517f3f000080bf4e832d3f60ccf83c0ad723be57b0d03c23e719bc000080bf0000000000000000000000002ea4873d1b707f3f000080bfdc392c3f0e31f63d0ad723be09d7233df376b4bb000080bf0000000000000000000000006c0f873d56717f3f000080bf13322d3f68f3e13d0ad723be36e719bc5cb0d0bc000080bf0000000000000000000000005ca5873d17707f3f000080bfbb36283f7712133e0ad723be0677b4bb0ad723bd000080bf000000000000000000000000bba5873d17707f3f000080bffc96243fafa10f3e0ad723be2de7193c54b0d0bc000080bf00000000000000000000000031bd873de56f7f3f000080bfbc36283fe6be053e0ad723be6d562fbbcecc4cbd000080bf0000000000000000000000005fa5873d17707f3f000080bf4518223fe4260d3e0ad723be66562f3bcbcc4cbd000080bf00000000000000000000000025a5873d19707f3f000080bf4518223f385b093e0ad723befd76b43b06d723bd000080bf000000000000000000000000cc95873d39707f3f000080bffc96243f82d1073e0ad723befcfb8932b0fb1dbe990a7cbf5d49433b675b33bed3bd32bef7d88a3dbe787b3f000080bfbe13083f0f58063e0ad723be60562f3b989919be000080bf00000000000000000000000003a6873d17707f3f000080bf2425093fd3a5043e0ad723be0f48753b89751dbee0e058bfe968933d87c206bf083304bf7cb8f83d3602593f000080bf6e34083f97b6033e0ad723be74562fbb999919be000080bf0000000000000000000000009fa5873d17707f3f000080bf2425093f8071083e0ad723be410077bbd28d1dbedb4a5abf567b6cbdd5e904bf0f8d05bf1e602d3d77225a3f000080bf832e083f8609093ea7081fbe0ad7233e0000000000000000000000000000803f000000000000803f00000000000080bf1209a03e203a963b0ad723be78c31f3e0000000000000000000000000000803f000000000000803f00000000000080bf670b9e3e000000000ad723be2e811cbe0000000000000000000000000000803f000000000000803f00000000000080bf0048e53b000000006c2c1dbe0ad723be0000000000000000000000000000803f000000000000803f00000000000080bf00000000a05fd03b672c1d3e0ad7233e0000000000000000000000000000803f000000000000803f00000000000080bf1209a03e91c79c3e9e081f3e0ad723be0000000000000000000000000000803f000000000000803f00000000000080bf0000000025b09d3e0ad7233e2b811c3e0000000000000000000000000000803f000000000000803f00000000000080bfef739c3e1209a03e0ad7233e71c31fbe0000000000000000000000000000803f000000000000803f00000000000080bf40d77e3b1209a03ecbcc4c3d6b562f3b0ad723be00000000000000000000803f0a5835bfb4b134bf000000000000803fde755b3e12efe43e04d7233d0677b43b0ad723be00000000000000000000803f0a5835bfb4b134bf000000000000803f53b35b3e9666e03e54b0d03c2de7193c0ad723be00000000000000000000803f0a5835bfb4b134bf000000000000803f8a0e5c3e91e5d93e57b0d0bc2de7193c0ad723be00000000000000000000803ff3672e3f3f663bbf000000000000803f03f3863e79973b3f09d723bdfd76b43b0ad723be00000000000000000000803ff3672e3f3d663bbf000000000000803fd1488a3e90c9383fcecc4cbd60562f3b0ad723be00000000000000000000803ff3672e3f3d663bbf000000000000803fce9c8c3e8dd5363f0ad723be57b0d03c23e719bc0000803f000000000000000000000000000000000000803f0000803fb837793f62e9d53e0ad723be09d7233df376b4bb0000803f000000000000000000000000000000000000803f0000803f3ca6763f69c6d03e0ad723bececc4c3d59562fbb0000803f000000000000000000000000000000000000803f0000803f96e1743f1c3dcd3e6b562fbb0ad723bececc4cbd000000000000803f000000000000000000000000000080bf0000803fd2dcbb3e839ebb3e0677b4bb0ad723be06d723bd000000000000803f000000000000000000000000000080bf0000803f3aebb63ee39fbc3e2de719bc0ad723be5cb0d0bc000000000000803f000000000000000000000000000080bf0000803fe1bbaf3e1601be3ecccc4cbd77562fbb0ad723be00000000000000000000803f9f2f8cbea337763f000000000000803fe199563fb2edf83e05d723bd1877b4bb0ad723be00000000000000000000803f9f2f8cbea337763f000000000000803f3623583f47e5f53e54b0d0bc3ae719bc0ad723be00000000000000000000803fa02f8cbea337763f000000000000803f28625a3f0c78f13e0ad723bececc4cbd6d562fbb0000803f00000000000000000000000000000000000080bf000080bff2f8773f3ae3fb3e0ad723be0ad723bd0677b4bb0000803f00000000000000000000000000000000000080bf000080bf5dd6793f588ef83e0ad723be5cb0d0bc36e719bc0000803f00000000000000000000000000000000000080bf000080bfd48b7c3f81b7f33e38e7193c0ad723be54b0d0bc000000000000803f0000000046ec7f3f00000000b3fcc8bc0000803fe4026f3f2cfa5e3c0677b43b0ad723be07d723bd000000000000803f0000000046ec7f3f00000000b4fcc8bc0000803f7b9f6e3ff6f4e33c6d562f3b0ad723becbcc4cbd000000000000803f0000000046ec7f3f00000000b3fcc8bc0000803ff7536e3fd7151a3d5cb0d03c3ae719bc0ad723be00000000000000000000803ff3b4acbefcfe703f000000000000803fd429753f5968603f07d7233d0e77b4bb0ad723be00000000000000000000803ff3b4acbefcfe703f000000000000803ff5c3723fc6845d3fcecc4c3d6d562fbb0ad723be00000000000000000000803ff3b4acbefbfe703f000000000000803f9e1b713f01855b3f9c15323e2bc0573c80b9d5bc026c063f4d723fbf84fdcf3e96198f3e264199be648c69bf000080bfd0dbaf3e1cbcff3d0ad7233e2de7193c5cb0d0bcc779733efa4f48bf4b54133fd0d0993e781301bff0444fbf000080bfe1bbaf3ee5650c3e0ad7233efd76b43b07d723bdc1fb813e458c6ebf10c5843e9f71553e6e1c56be949674bf000080bf3aebb63ebc220f3e0ad7233e60562f3bcecc4cbd3a4b843efd3c77bfab21ba3c0cf7a03debf61ebb11357fbf000080bfd1dcbb3e7921113e992a333e4fe2da3bcfcc4cbd88f80f3f9c8053bfb5b20a3d13e0203dafe468bccfc67fbf000080bf58aabb3e53b0033e0ad7233e6b562f3b999919be9053843e8f4c77bf484fa2bbf0f498bd489d73bcb4417fbf000080bf16cfed3e681d113e992a333e4fe2da3b989919bef1ed0f3f2b8753bf9aae0bbdfb0f22bdae826a3cf7c57fbf000080bf9c9ced3e43ac033e0ad7233e1300773bd08d1dbea8467f3e7a896ebf6d1a87be414759be9d6b5a3e7d2374bf000080bfd6c1ef3ee257103ebeb1203ef00d7a3bc0b120be0ba6723e94dc71bf5ad467befe863cbe9c953d3eab1e77bf000080bf5158f13e497d123ed18d1d3e2600773b0ad723be7ca8823e80686ebf691c85be8a2b50bec243583efac074bf000080bf02eff23e90b2143eb9f5453e9911cd3ccfcc4cbd6a2e5e3f064afdbeed41383d3084b13c4f2358bd49957fbf000080bf58aabb3ec874d33d9c15323e2bc0573c9c1532be5d30ea3e582743bf546feabe5fc29bbee90ab33e38d762bf000080bf9eb0f93e1ab0ff3d9899193e60562f3b0ad723be4fa6a83ceb3f77bfcd4c84beeebb66bee2417d3e1e3f71bf000080bfc0fbf23e3b35183e9899193e4fe2da3b992a33beb6b20a3d9c8053bf88f80fbfb2b77fbe8ab1093f3f214ebf000080bfee87fa3edb61153ecbcc4c3d4fe2da3b992a33beb2b20abd9d8053bf87f80fbf3be980be69360d3fc4914bbf000080bf5254fc3e1d545c3ecbcc4c3d6b562f3b0ad723be7b29e0bc432d77bfc08584bee0be7ebed1c4833ecc096fbf000080bf24c8f43e7c275f3ec9503f3e7bb9d53c9c1532be55ee4e3f5625d5be4f25d5bebef7a3be929a903e247d67bf000080bf9eb0f93e3c22db3d9d15323e7db9d53cc9503fbe5525d53e5525d5be54ee4ebfcc0012bf19a4123f75b716bf000080bf1d30003fb076ed3db9f5453e9711cd3c989919be6a2e5e3f064afdbeeb4138bda5dab2bc03f8563d0a967fbf000080bf9c9ced3eac6cd33dc9503f3e7db9d53c80b9d5bc54ee4e3f5525d5be5825d53e08e4a33e1dbd90be3c7b67bf000080bfd0dbaf3e402edb3d9c15323e7bb9d53c40c057bc0a29043fb7b5cdbeed9f413fcd790c3f26db05bf04fd26bf000080bf2ea3a93ecc84ed3dcbcc4c3ececc4c3dcbcc4cbd7e487f3fa09758bda697583de3133f3d4600e7bdf9157ebf000080bf8afebb3e7cc5a63db9f5453ececc4c3da011cdbc692e5e3fee4138bd0a4afd3eee81f03ef48e7fbe6fc758bf000080bfeba4af3eee41b03dcbcc4c3ecccc4c3d989919be7e487f3fa39758bd9e9758bdeb2b3fbd0334e63dcc187ebf000080bfcdf0ed3e5cbda63db9f5453ececc4c3d992a33be6a2e5e3feb4138bd064afdbe188af0be002d7f3e62cc58bf000080bfee87fa3ec035b03db9f5453e9899193e992a33be6a2e5e3fea41383d064afdbebd6ff8be4e7a943e852c53bf000080bf5254fc3e70cb8c3ccbcc4c3e9999193e999919be7e487f3fa297583d9f9758bd1d4378bd9a19213ede557cbf000080bf32bdef3ec0d34d3cc9503f3e9c15323e9d1532be54ee4e3f5825d53e5525d5be18740abf05937b3e7cf04dbf000080bf2d59fc3ec006ab3bb9f5453e982a333e989919be692e5e3f064afd3ef04138bde24223bed73e443ee1ea77bf000080bfe44ef03e00000000b9f5453e982a333ecfcc4cbd692e5e3f064afd3eed41383d8f86233eccb844be0de277bf000080bfa15cbe3e00408237cbcc4c3e9999193ecbcc4cbd7e487f3fa397583da397583d575a783d4b9c21be8e507cbf000080bfedcabd3eb0144e3cb9f5453e9899193ea011cdbc692e5e3ff041383d0b4afd3e3869f83e17b594be192453bf000080bf4f71b13e30fc8c3cc9503f3e9c15323e80b9d5bc51ee4e3f5825d53e5a25d53e327c0a3fd00c7cbebae14dbf000080bf5e84b23e00c7ab3b9c15323e7bb9d53c40c057bc0a29043fb7b5cdbeed9f413fcd9e29bf1d373fbfd636633d000080bf05e1d83e2a523b3f0ad7233e2de7193c5cb0d0bcc779733efa4f48bf4b54133fac9029bf366110bf307efcbe000080bfd0b3e33e16d43a3f9c15323e2bc0573c80b9d5bc026c063f4d723fbf84fdcf3ead4e1ebf2fc829bf21dcd7be000080bfc272dd3e4c09393f0ad7233e54b0d03c3ae719bcdb87753e013e0bbf0ddd4d3fa1b133bfa25a2bbfba4879be000080bffc03de3e00ac3d3f992a333ececc4c3d60e2dabbbe09113f0c62f7bcf6ce523fe5a01cbf87502fbf56aaca3e000080bfbe0cd03ea65c3f3f0ad7233e05d7233d1877b4bb5bf4783ec51c82be4aa56f3f20ff34bf8a0735bf74c308bc000080bf05e1d83e7c3d403fc9503f3e7db9d53c80b9d5bc54ee4e3f5525d5be5825d53e9a2e15bfb1992abfc920ee3e000080bf474fd43e4c09393fb9f5453ececc4c3da011cdbc692e5e3fee4138bd0a4afd3e2999cfbe92b523bf2937273f000080bf408fc93ee71d3c3f0ad7233ecccc4c3d77562fbb6451843eec474cbc6948773f29352fbf4c4235bfe424323e000080bfb857d53e2202423fb9f5453e9899193ea011cdbc692e5e3ff041383d0b4afd3e974bc8be16460dbfcf8a3c3f000080bf4932a63e63cc4d3f992a333e9899193e60e2dabb8bf80f3fb7b20a3d9c80533f604f21bf322221bf5cd1e83e000080bfc6afac3e220b513f0ad7233e9999193e6d562fbb154d843eccb3a53c6140773fd69233bf1ef92ebf3cd54e3e000080bfc0fab13e9fb0533f9c15323e9c15323e40c057bcf473ef3e2e75ef3eb801403fe7c407bff3c407bf0b52293f000080bfd09aa43e4575553fc9503f3e9c15323e80b9d5bc51ee4e3f5825d53e5a25d53ea47b86bee772c1be3e49633f000080bf1309a03e662c533f0ad7233e2b811c3e1cfb63bb9c467f3e7c1a873e7a896e3f54ae28bfe3ad28bfcbcbb93e000080bff6f9b03e0331543ff558203ef558203e62d46dbb0e14833e4ead833eb38c6e3f1bae28bf1bae28bfd0cbb93e000080bffcdab03e4575553f672c1d3e0ad7233eb01a70bb731a873eb6467f3e78896e3f16ae28bf1fae28bfd0cbb93e000080bfd4beb03ef59b563f9c15323ec7503f3e80b9d5bc5525d53e51ee4e3f5f25d53ea572c1bed47b86be4449633f000080bf1409a03e23be573f9999193e0ad7233e74562fbb0595a73cf64c843e1440773f98f92ebf8e8f33bf63fc4e3e000080bfc0fab13eeb39573f9899193e982a333e60e2dabbb0b20a3d8bf80f3f9c80533f2d2221bf644f21bf5dd1e83e000080bfc8afac3e68df593f9899193eb9f5453ea011cdbcf741383d672e5e3f124afd3e0d460dbfa44bc8bed38a3c3f000080bf4932a63e271e5d3fcbcc4c3db9f5453ea011cdbcf74138bd662e5e3f144afd3e3ec018bf664dd7be3bf82e3f000080bf408fc93ea2cc6e3fcbcc4c3d0ad7233e74562fbbc3474cbc6a51843e6748773f754235bf01352fbfc524323e000080bfb857d53e67e8683fcbcc4c3d982a333e60e2dabbd7f800bd13ab103fcf0c533fa80933bffd0a1abfd681c53e000080bfbf0cd03ee48d6b3f06d7233d0ad7233e0e77b4bb2ea785bee218813e838b6e3faaf434bf341335bf170dd9bb000080bf04e1d83e0dad6a3f78b9d53c9c15323e40c057bc632bcfbe4b91053fe543403f214e52bfd57411bf551344bd000080bf05e1d83e5f986f3f54b0d03c0ad7233e3ae719bc485413bfc979733efe4f483f618926bfb38136bfcf0e86be000080bffc03de3e893e6d3f23e7193c0ad7233e5cb0d0bc0ddd4dbfcf87753e043e0b3f89cf0abf9fbb2bbf178501bf000080bfd0b3e33e7316703f20c0573c9c15323e80b9d5bceb9f41bf0a29043fb5b5cd3e1f4827bf200b20bfd787dabe000080bfc272dd3e3ee1713fb9f5453ececc4c3d992a33be6a2e5e3feb4138bd064afdbe216dc7bce0a77d3fdbfe07be000080bfaebd143f1ce32e3fc9503f3e7bb9d53c9c1532be55ee4e3f5625d5be4f25d5be22b5693e5b965f3f1748dcbe000080bf10c30e3f7882303f9d15323e7db9d53cc9503fbe5525d53e5525d5be54ee4ebf6c3cb83b2be3633fc03fe9be000080bf10c30e3f99bd333f992a333ececc4c3db9f545be064afd3eeb4138bd6a2e5ebff60f25bdec137f3f0dd098bd000080bfaebd143ff679333f992a333e9899193eb9f545be064afd3eea41383d6a2e5ebf8a10253dec137f3f36d0983d000080bf18bf2d3ff679333fb9f5453e9899193e992a33be6a2e5e3fea41383d064afdbed76cc73ce0a77d3fc9fe073e000080bf18bf2d3f1ce32e3fc9503f3e9c15323e9d1532be54ee4e3f5825d53e5525d5be67a913be3558533fa1aa0b3f000080bfb6b9333f7882303f9c15323e9c15323ec9503fbe5125d53e5725d53e55ee4ebf7e53863c48ac623ff1cded3e000080bfb6b9333f9abd333f9c15323ec7503f3e9c1532be5a25d53e53ee4e3f5725d5be40faf5bd7fb3003f57265b3f000080bfd7f4363f9abd333f9899193eb9f5453e992a33befa41383d672e5e3f0e4afdbea2a349bcf1c5fd3ebc515e3f000080bf3394383f37b8393f9899193e9999193ecbcc4cbe9e97583da297583d7e487fbf42558b3baea27f3f93d0593d000080bf18bf2d3f37b8393f9999193ececc4c3dcbcc4cbe9f97583d9e9758bd7e487fbf17528bbbaea27f3f89d059bd000080bfaebd143f37b8393f9899193e982a333eb9f545bef241383d064afd3e692e5ebf0000000034685e3f328bfd3e000080bf59fd333f37b8393fcfcc4c3d982a333eb9f545bef04138bd084afd3e692e5ebf75fc7d3b496d5e3f6177fd3e000080bf59fd333fa1b9523fcfcc4c3db9f5453e992a33bef94138bd672e5e3f0e4afdbea0a3493cf1c5fd3ebc515e3f000080bf3394383fa1b9523fcbcc4c3d9999193ecbcc4cbea39758bd9f97583d7e487fbf7e5a8bbbaea27f3f9ad0593d000080bf18bf2d3fa2b9523f80b9d53c9c15323ec9503fbe5a25d5be5a25d53e53ee4ebf14a6923dd8b9663f20c6da3e000080bfb6b9333f3fb4583f9899193e9911cd3cb9f545beed41383d064afdbe6a2e5ebf0000000034685e3f308bfdbe000080bf6c7f0e3f37b8393f9c15323e2bc0573c9c1532be5d30ea3e582743bf546feabe8f7fce3d8f580e3f5d3453bf000080bfef870b3f99bd333f9899193e4fe2da3b992a33beb6b20a3d9c8053bf88f80fbf8babd23bb918103f869653bf000080bf92e8093f37b8393fcbcc4c3d4fe2da3b992a33beb2b20abd9d8053bf87f80fbf83abd2bbb618103f879653bf000080bf92e8093fa1b9523fcbcc4c3d9711cd3cb9f545beea4138bd064afdbe692e5ebf0000000034685e3f328bfdbe000080bf6c7f0e3fa1b9523fcbcc4c3dcccc4c3dcbcc4cbea09758bda39758bd7e487fbf355c8b3baea27f3f9fd059bd000080bfaebd143fa2b9523f78b9d53c7bb9d53cc9503fbe5125d5be5125d5be57ee4ebfde34b8bb29e3633fc73fe9be000080bf10c30e3f3fb4583f78b9d53c2bc0573c9c1532be9ff1ccbe033142bf0ba003bfbfd58fbd61b6153f09e14ebf000080bfef870b3f3fb4583fa011cd3c9899193eb9f545be064afdbefa41383d692e5ebfeb0f25bdec137f3f15d0983d000080bf18bf2d3fe2f7583f9811cd3ccecc4c3db9f545be064afdbed54138bd6a2e5ebf3a10253dec137f3f14d098bd000080bfaebd143fe2f7583f20c0573c7db9d53c9d1532bee34340bf642bcfbe4f9105bf96ce34bec96f623fd614ddbe000080bf10c30e3f60ef5b3f40e2da3bcecc4c3d992a33becf0c53bfb1f800bd13ab10bfceb32e3deefd7d3f38a6f0bd000080bfaebd143fbd8e5d3f60e2da3b9899193e992a33be9c8053bfd0b20a3d8af80fbf7fa425bd36f77d3f9900f43d000080bf18bf2d3fbc8e5d3f40c0573c9c15323e9c1532beb5d23fbfc8bfef3ef9bfefbe444d763e55ec593f9ec7ee3e000080bfb6b9333f60ef5b3fb9f5453e982a333e989919be692e5e3f064afd3ef04138bd2bb866bdf67e403eaf057b3f000080bfd0322d3d1209a03ec9503f3e9c15323e9d1532be54ee4e3f5825d53e5525d5be3bfd063eeba80f3fbb2f513f000080bf30e39a3c7425a33e9c15323ec7503f3e9c1532be5a25d53e53ee4e3f5725d5be089229bd67cff23ed521613f000080bf08bf9e3ca24aa73e992a333eb9f5453e989919be104afd3e672e5e3ffb4138bd39edaebd47f0cc3d57c67d3f000080bf58f02f3d5ceca53e992a333eb9f5453ecfcc4cbd0e4afd3e672e5e3ffa41383d7ce9ed3d684ef0bd797c7c3f000080bfe9ef0f3e4a80a63eb9f5453e982a333ecfcc4cbd692e5e3f064afd3eed41383d4581a03d673567beaa94783f000080bf86400f3e009da03ec9503f3e9c15323e80b9d5bc51ee4e3f5825d53e5a25d53e35a2dabd7a7c17bf038d4c3f000080bfa11c273e2200a43e9c15323ec7503f3e80b9d5bc5525d53e51ee4e3f5f25d53eb6a4923dc49ef8be550a5f3f000080bf1a98273e4e25a83e9899193ecbcc4c3ecbcc4cbda097583d7e487f3fa997583d92827f3dbcfb65bdc8187f3f000080bfc02f103e2757b13e9899193eb9f5453ea011cdbcf741383d672e5e3f124afd3e6bc3bb3df84ffebec7f15c3f000080bf79e4283eae84b23e9999193ecbcc4c3e989919bea497583d7e487f3fa09758bd1a0a18bd17c9603d01707f3f000080bfb0ef303d38c3b03e9899193eb9f5453e992a33befa41383d672e5e3f0e4afdbea47688bde450fe3edf875d3f000080bf203c983ce1a6b13ecfcc4c3db9f5453e992a33bef94138bd672e5e3f0e4afdbe30b8f7bdff41f93eeb755d3f000080bf283c983ca834e13ecbcc4c3dcbcc4c3ecbcc4cbda69758bd7e487f3fa897583dd34b473d84194ebd435f7f3f000080bfbf2f103eefe4e03ecbcc4c3db9f5453ea011cdbcf74138bd662e5e3f144afd3e1374113ef01ff8be21f55c3f000080bf79e4283e7512e23ecbcc4c3dcbcc4c3e999919bea79758bd7e487f3fa79758bd9d4ad0bc8451533d82937f3f000080bfacef303d0051e03e80b9d53cc7503f3e9c1532be5f25d5be51ee4e3f5525d5bea96aecbd4d78d03e84f1673f000080bf10bf9e3c0e96ed3ecfcc4c3d982a333eb9f545bef04138bd084afd3e692e5ebf31446abe9e30573fe063fb3e000080bf0000000078f0e33e80b9d53c9c15323ec9503fbe5a25d5be5a25d53e53ee4ebf724ca1bea995443fbac70e3f000080bf2046ce3bbf82ef3e40c0573c9c15323e9c1532beb5d23fbfc8bfef3ef9bfefbe688670be4047f23e425c593f000080bf40e39a3cd7baf53ea011cd3cb9f5453e989919be104afdbe672e5e3f024238bd897a273c8ece6b3de18f7f3f000080bf58f02f3d0a39ed3e9811cd3cb9f5453ecfcc4cbd104afdbe672e5e3fe341383d3e82273cb3323cbd5db77f3f000080bfe9ef0f3ef9cced3e40e2da3b982a333ecfcc4cbdf9ce52bfbb09113fc761f73c6a7defbc2ba3c3bd2ab87e3f000080bf86400f3e325ef93e60e2da3b982a333e989919be9c8053bf8af80f3fccb20abd1af8363d7b4e003e93b97d3f000080bfd0322d3d43caf83e78b9d53cc7503f3e80b9d5bc5a25d5be53ee4e3f5a25d53ef988093e97dccbbe1e4d683f000080bf1b98273eba70ee3e78b9d53c9c15323e40c057bc632bcfbe4b91053fe543403ff6728d3e3f9136bf17ef243f000080bfd706343ea683f03ecbcc4c3d982a333e60e2dabbd7f800bd13ab103fcf0c533f60ca6f3ec3354cbff0440e3f000080bf398d3a3e9204e53e20c0573c9c15323e80b9d5bceb9f41bf0a29043fb5b5cd3e215b403ea575d5beb8aa633f000080bfa11c273e8495f63e23e7193c0ad7233e5cb0d0bc0ddd4dbfcf87753e043e0b3f7babc43ef336fabe0989483f000080bffc34273ef888fa3ef376b43b0ad7233e07d723bd4ba56fbf61f4783eb81c823e1a99103e1acccdbe009b673f000080bf49b0183e934cfc3e59562f3b0ad7233ececc4cbd694877bf6451843e47474c3c5cf506bd84c22ebe6d1a7c3f000080bf80b10e3e8896fd3e74562f3b0ad7233e989919beb03e77bf2f4c843ecb2eb0bc32bf0c3dbccc563e5a267a3f000080bfb0f62a3d9a02fd3ea9ec933b0ad7233ec73f20be7a896ebfb1467f3e6f1a87be833108be2042e23ee91b633f000080bfb000113d2319fc3e33d2913bcddf213eccdf21bea38c6ebf5df9833eebc782be4a5102beada7da3e4d2d653f000080bf045f0a3da46afc3edb078d3b0a7d1f3e0ad723be78896ebf701a873ec5467fbe45b1fdbd1e2bd43e2bd1663f000080bf1859023de3d5fc3e77562f3b9999193e0ad723be0b3f77bf0d10ae3c574c84be4c7f67bee17ad63ec622613f000080bf507d013de87ffe3e60e2da3b9899193e992a33be9c8053bfd0b20a3d8af80fbfc16ef8be8ad7ed3e5ca43d3f000080bf604c8b3c4982fc3e78b9d53c2bc0573c9c1532be9ff1ccbe033142bf0ba003bfe7e4a7be838acfbe4c735a3f000080bf03034e3ee8c6d83ecbcc4c3d4fe2da3b992a33beb2b20abd9d8053bf87f80fbfba676abe2a950abf831d4f3f000080bf625f4c3e1084e33ecbcc4c3d6b562f3b0ad723be7b29e0bc432d77bfc08584be111e53be95dc7dbec453723f000080bfde755b3e12efe43e54b0d03c2de7193c0ad723bea39706bf179650bf81347abe2c4937be3c0b33be45db773f000080bf8a0e5c3e91e5d93e21e7193c57b0d03c0ad723befd4f48bf4a5413bfb87973bef13e2cbe536d30beca77783f000080bf8a0e5c3eea85ce3e20c0573c7db9d53c9d1532bee34340bf642bcfbe4f9105bf308ed2be13c1a9befe5d593f000080bf01034e3e6ea3cf3e78b9d53c7bb9d53cc9503fbe5125d5be5125d5be57ee4ebf818212bf7b2212bf7bb7163f000080bf6bab403e2e33d43eeb76b43b0ad7233d0ad723be888b6ebf1ca785beca1881beb2684fbe544c4fbe4e47753f000080bf52b35b3e6101c83e40e2da3bcecc4c3d992a33becf0c53bfb1f800bd13ab10bfd97c0abf3ebc7fbe86984d3f000080bf635f4c3e8ce0c43e54562f3bcecc4c3d0ad723be694877bf31474cbc595184beb20c7fbe5b0367bea01c713f000080bfde755b3e8776c33e60e2da3b9899193e992a33be9c8053bfd0b20a3d8af80fbf2b320dbf003181be57894b3f000080bf0306493e1873a13e77562f3b9999193e0ad723be0b3f77bf0d10ae3c574c84be4dc482bee55c7fbe78226f3f000080bf7d1c583e1209a03e2bc057bc9c15323e80b9d5bc4b723f3f076c063f82fdcf3eca56e73c44f222bf0150453f000080bf29ac9b3e6c1a673f2de719bc0ad7233e5cb0d0bcf94f483fc879733e4c54133fd7d35abe9bfb43bfd1591b3f000080bf7b1c9e3e1fc4653ffd76b4bb0ad7233e07d723bd478c6e3fc6fb813e0bc5843e7ca7dfbc01db29bff1673f3f000080bf6e4e973e2c6c643f66562fbb0ad7233ececc4cbdfd3c773f454b843eb021ba3c5865313e792e35bfcd552f3f000080bf1898923e9185633f4fe2dabb982a333ecfcc4cbd9d80533f87f80f3fb1b20a3d84f9b83e782f13bfa9ee3b3f000080bf2f3d903eca0e653f4fe2dabb982a333e989919beb628533f3e80103fd94e03bd0771fa3e111e2fbfd3860a3f000080bfe5244c3e56ac573f66562fbb0ad7233e999919beda4b773f3953843ea3e8dfbb0de0623ef95c50bfaf7d093f000080bfb8da503e1d23563f9e7289bb0ad7233ed4171fbe7c896e3fb9467f3e5a1a87bef412b33eb6a84fbf4af9ef3e000080bfb1dc4c3e342f553f2bc057bc9c15323e9d1532be8729403f722fef3edf39efbe2662233f8e1532bf88daa83e000080bf83ae3a3e6651533f24678bbbcde5223ef83220be7d896e3f95467f3e601a87beeb12b33eada84fbf6df9ef3e000080bf0c594c3eebe5543f6fe889bbdb6c213edb6c21be458c6e3f2acb843e91f581be75a2b43ef3b04fbf78b0ee3e000080bfc3e84b3eb289543f606284bbca881e3e0ad723be7c896e3f681a873e97467fbe1c4fb53e28d14fbfecbced3e000080bfa8034b3e82d7533f60562fbb9999193e0ad723be793f773f5065ab3c904c84be29e32f3e33574cbf02cf133f000080bf1e814c3ee55b533f4fe2dabb9899193e992a33be9d80533fa9b20a3d87f80fbf120aba3e627d4bbf93ccf83e000080bf8c48413e9fbc503f4fe2dabbcecc4c3d992a33bed10c533fd9f800bd10ab10bfa60faf3e319944bf13a60a3f000080bf001e6a3ee056423f6b562fbbcccc4c3d0ad723be6b48773fd7474cbc585184be88ca2b3e21f03abfa38b293f000080bf9356753e26f6443f0677b4bb05d7233d0ad723be858b6e3f24a785bed01881be005bb73bf62f2fbfe9a93a3f000080bfa4697a3e8815433f2bc057bc7bb9d53c9c1532bee443403f682bcfbe499105bf75d89c3d3f433bbfc3722d3f000080bfef0a773e16093e3f2de719bc54b0d03c0ad723befa4f483f4a5413bfca7973be60a130bee83511bfc0274e3f000080bf1ada803e6a64403f7db9d5bc2bc0573c9c1532be99f1cc3e023142bf0fa003bf569745be48461ebf250d433f000080bfa46b803ea52d3a3f7bb9d5bc7db9d53cc9503fbe5525d53e5325d5be54ee4ebfbd44173e5fa358bf790c033f000080bfffaa703e264f3a3f57b0d0bc2de7193c0ad723bea397063f179650bf8f347abe5537a1bec310e8be7f7b553f000080bf03f3863e79973b3fcecc4cbd60562f3b0ad723be6c29e03c432d77bfc18584be150aeebe3a4f77bee90d5a3f000080bfce9c8c3e8dd5363fcecc4cbd4fe2da3b992a33beb8b20a3d9c8053bf88f80fbfe551f0be3b8b02bfd98a383f000080bfd67b853e4c68353f999919be4fe2da3b992a33beb2b20abd9c8053bf88f80fbfab530abfed9eeabe53aa343f000080bf84fb963eeff3253f999919be6b562f3b0ad723be4462a8bcf63f77bfd24c84bef6fd02bf2ef658beb027553f000080bf7b1c9e3e2f61273f4fe2dabbcecc4c3d992a33bed10c533fd9f800bd10ab10bf6ab32ebdf0fd7d3f1ca6f0bd000080bfbf63363f87d7813e2bc057bc7bb9d53c9c1532bee443403f682bcfbe499105bfb3ce343ec86f623fd314ddbe000080bf2169303f3f16853e7bb9d5bc7db9d53cc9503fbe5525d53e5325d5be54ee4ebf0135b83b28e3633fc93fe9be000080bf2169303f828c8b3e9711cdbccecc4c3db9f545be064afd3ee94138bd692e5ebf621025bdec137f3f2dd098bd000080bfbf63363f3b058b3e9911cdbc9899193eb9f545be064afd3ee641383d6a2e5ebf8a10253dec137f3f34d0983d000080bf29654f3f3b058b3e4fe2dabb9899193e992a33be9d80533fa9b20a3d87f80fbff0a4253d34f77d3fcd00f43d000080bf29654f3f87d7813e2bc057bc9c15323e9d1532be8729403f722fef3edf39efbe16471cbeb5854f3f7eb8103f000080bfc75f553f4016853e7db9d5bc9c15323ec9503fbe5325d53e5525d53e54ee4ebf0353863c48ac623ff1cded3e000080bfc75f553f828c8b3e7cb9d5bcc7503f3e9c1532be5c25d53e53ee4e3f5425d5be3cfaf5bd7eb3003f59265b3f000080bfe89a583f828c8b3ececc4cbdb9f5453e992a33befe41383d672e5e3f0e4afdbea4a349bcf1c5fd3ebc515e3f000080bf443a5a3fbe81973ececc4cbd9999193ecbcc4cbea297583da797583d7e487fbf34558b3baea27f3f97d0593d000080bf29654f3fbe81973ecccc4cbdcecc4c3dcbcc4cbea497583da09758bd7e487fbfda548bbbaea27f3f93d059bd000080bfbf63363fbe81973ececc4cbd982a333eb9f545bef441383d064afd3e6a2e5ebf0000000035685e3f308bfd3e000080bf6aa3553fbe81973e989919be982a333eb9f545bef04138bd064afd3e692e5ebf86127e3b496d5e3f5d77fd3e000080bf6aa3553f9384c93e989919beb9f5453e992a33befa4138bd672e5e3f0e4afdbea0a3493cf1c5fd3ebc515e3f000080bf443a5a3f9384c93e999919be9999193ecbcc4cbea39758bda497583d7e487fbf04548bbbaea27f3f96d0593d000080bf29654f3f9384c93e9c1532be9c15323ec9503fbe5a25d5be5a25d53e53ee4ebf61a6923ddab9663f19c6da3e000080bfc65f553fce79d53ececc4cbd9911cd3cb9f545bef041383d064afdbe6a2e5ebf0000000035685e3f2e8bfdbe000080bf7d25303fbe81973e7db9d5bc2bc0573c9c1532be99f1cc3e023142bf0fa003bfc4d58f3d62b6153f07e14ebf000080bf002e2d3f828c8b3ececc4cbd4fe2da3b992a33beb8b20a3d9c8053bf88f80fbf8fabd23bb918103f869653bf000080bfa38e2b3fbe81973e999919be4fe2da3b992a33beb2b20abd9c8053bf88f80fbf7fabd2bbb718103f869653bf000080bfa38e2b3f9384c93e999919be9711cd3cb9f545beeb4138bd064afdbe692e5ebf0000000034685e3f328bfdbe000080bf7d25303f9384c93e999919becccc4c3dcbcc4cbea29758bda39758bd7e487fbf83558b3baea27f3f96d059bd000080bfbe63363f9384c93e9d1532be7bb9d53cc9503fbe5025d5be5125d5be57ee4ebfea32b8bb28e3633fc93fe9be000080bf2169303fce79d53e9d1532be2bc0573c9c1532be7b20eabec83043bfc35feabe23a1cebd7c4e0e3fa33a53bf000080bfff2d2d3fce79d53e982a33be9899193eb9f545be064afdbefb41383d692e5ebf0f1025bdec137f3f1fd0983d000080bf29654f3f1401d63e992a33bececc4c3db9f545be064afdbed84138bd6a2e5ebf7a10253dec137f3f27d098bd000080bfbe63363f1501d63eca503fbe7db9d53c9d1532be58ee4ebf4e25d5be4e25d5beecb469be5a965f3f3448dcbe000080bf2169303f11f0db3eb9f545bececc4c3d992a33be692e5ebfd04138bd084afdbe7c6dc73cdea77d3fddfe07be000080bfbe63363fca2edf3eb9f545be9899193e992a33be692e5ebf0342383d0a4afdbe976dc7bcdea77d3ffcfe073e000080bf29654f3fc92edf3ec7503fbe9c15323e9c1532be51ee4ebf5f25d53e5625d5be18b5693e5a965f3f2948dc3e000080bfc65f553f10f0db3e4fe2dabb982a333e989919beb628533f3e80103fd94e03bdeaaebcbd84b4423e7a387a3f000080bf1257143f23fbfd3e2bc057bc9c15323e9d1532be8729403f722fef3edf39efbe843be93d27e81a3fa8b7493f000080bfb35f0e3f739d003f7cb9d5bcc7503f3e9c1532be5c25d53e53ee4e3f5425d5be4ad068bd09d0f53e2c18603f000080bfb4840e3fa5af023f9711cdbcb9f5453e989919be104afd3e672e5e3ff74138bdb9c2cebdbad4de3d142a7d3f000080bfa08b143fa8ee013f9911cdbcb9f5453ecfcc4cbd0e4afd3e672e5e3ff441383d4cc2ce3d78d4debd152a7d3f000080bf02892d3fa7ee013f4fe2dabb982a333ecfcc4cbd9d80533f87f80f3fb1b20a3d79d6b83d570744be6b337a3f000080bf74542d3f23fbfd3e2bc057bc9c15323e80b9d5bc4b723f3f076c063f82fdcf3eec1d48bd321411bf088d523f000080bf6450333f729d003f7db9d5bcc7503f3e80b9d5bc5825d53e51ee4e3f5a25d53eb3cf683d09d0f5be2c18603f000080bf6475333fa4af023fcecc4cbdcbcc4c3ecbcc4cbda397583d7e487f3fa997583d8d184c3d086b63bd61497f3f000080bf02a92d3fcf59073fcecc4cbdb9f5453ea011cdbcf841383d672e5e3f124afd3e5a71a23d9455febe5f405d3f000080bfd4d7333f47de073fcccc4cbdcbcc4c3e989919bea797583d7e487f3fa39758bdb5194cbd106b633d5f497f3f000080bfa0ab143fcf59073fcecc4cbdb9f5453e992a33befe41383d672e5e3f0e4afdbe7c72a2bd9155fe3e5c405d3f000080bff35f0e3f48de073f989919beb9f5453e992a33befa4138bd672e5e3f0e4afdbe56d606be40b2f83eb4375d3f000080bf53a60e3fc3a41f3f999919becbcc4c3ecbcc4cbda79758bd7e487f3fab97583d76f8173dcbb550bdb07d7f3f000080bf63ef2d3f4b201f3f999919beb9f5453ea011cdbcf74138bd672e5e3f124afd3e20d6063e43b2f8beb5375d3f000080bf341e343fc3a41f3f999919becbcc4c3e999919bea89758bd7e487f3fa79758bdadf817bdc5b5503dae7d7f3f000080bf00f2143f4b201f3f9c1532bec7503f3e9c1532be5f25d5be51ee4e3f5a25d5be8e0b00be3323ce3e5d23683f000080bfbcec0e3fc1d4253f989919be982a333eb9f545bef04138bd064afd3e692e5ebfdf3573be60ac563f7808fb3e000080bf92e8093fbb10213f9c1532be9c15323ec9503fbe5a25d5be5a25d53e53ee4ebf4155a5be3d6c433f82380f3f000080bf38960b3f00d5263fc7503fbe9c15323e9c1532be51ee4ebf5f25d53e5625d5be69b062be036ee13e2dc15e3f000080bfecd90e3f6fe7293f982a33beb9f5453e989919be0e4afdbe672e5e3f054238bd00000000f1ea533d3aa87f3f000080bf25f5143f6394253f992a33beb9f5453ecfcc4cbd104afdbe672e5e3fe441383d00000000feea53bd3aa87f3f000080bf88f22d3f6394253f9d1532bec7503f3e80b9d5bc5a25d5be53ee4e3f5a25d53e360b003e4723cebe5b23683f000080bf6cdd333fc1d4253fb9f545be982a333ecfcc4cbd692e5ebf0a4afd3ed241383dfdc4a6bc0ded00becce87d3f000080bfced72d3f685d2b3f9d1532be9c15323e40c057bc787debbedd46eb3e0382423fe8f1963e3c653abf4f6b1e3f000080bf20fc363fffd4263f999919be982a333e60e2dabb4ed907bd5532103f125b533fb329683ea7df4cbf171b0e3f000080bfad8c383fba10213fca503fbe9c15323e80b9d5bc57ee4ebf5125d53e5525d53e40b0623e276ee1be27c15e3f000080bf9cca333f6fe7293fb9f545be982a333e989919be692e5ebf0d4afd3e044238bd6ac4a63c04ed003ecce87d3f000080bf6cda143f685d2b3fcbcc4cbe9999193ecbcc4cbd7e487fbf9b97583d9e97583d72bf273db06a52be4c517a3f000080bf94a62d3f1be32e3fb9f545be9899193ea011cdbc692e5ebfdd41383d0b4afd3e4089d93e1ec3e5be0044493f000080bf20df333f8a4c2d3fcbcc4cbe9999193e989919be7e487fbfa697583da39758bd78bf27bd9d6a523e4c517a3f000080bf32a9143f1be32e3fb9f545be9899193e992a33be692e5ebf0342383d0a4afdbe4089d9be14c3e53e0244493f000080bf3e670e3f8a4c2d3f0ad723befd76b43b06d723bdc3fb81be478c6ebf0cc5843ef7a9253ea2c6643e7511763f000080bffc96243f82d1073e0ad723be2de7193c54b0d0bcbc7973befb4f48bf4a54133fefce803e8fcd053fbf87503f000080bfbc36283fe6be053e9c1532be2bc0573c78b9d5bc026c06bf4d723fbf81fdcf3ed4947a3ee924a63e28e7693f000080bfee4a283fca80f23d0ad723be66562f3bcbcc4cbd414b84befd3c77bfb321ba3c3d09e53cc059833cf5dd7f3f000080bf4518223f385b093e982a33be4fe2da3bcbcc4cbd87f80fbf9d8053bfb8b20a3d000000003be6273deac87f3f000080bf3e58223f40f8f73d992a33be4fe2da3b989919be2dea0fbf978953bf64e40bbdf7a1a4bd811a5d3cec257f3f000080bf1e65093f788dee3d0ad723be60562f3b989919be9b5384be984c77bf0e7c9ebb583802be3c0dee3c05d07d3f000080bf2425093fd3a5043e0ad723be0f48753b89751dbe9a467fbe7f896ebf551a87be553d86be09194abe9cd2713f000080bf6e34083f97b6033e73a520be555c783b72a520be82e272be8fd471bfd41a68bea15e71be297a2ebed6ee743f000080bf4d60073f51ba053e8b751dbe2048753b0ad723be59a682be21686ebf2a2185be61b081bea8d347be728f723f000080bfca8b063fe0cd073e9d1532be2bc0573c9c1532be7b20eabec83043bfc35feabe2607b0beab73a5be4eb6613f000080bf6669033f2095e43d999919be6b562f3b0ad723be4462a8bcf63f77bfd24c84beff6980bea6177bbe39bc6f3f000080bfae7b063f83360b3e999919be4fe2da3b992a33beb2b20abd9c8053bf88f80fbf517f90becc2a08bf70634c3f000080bfb5bf023ff1aa073eb9f545be9911cd3c989919be692e5ebf0a4afdbed04138bdf60c3ebd7a7c1abc7fb67f3f000080bf90b3093f60b0ba3dc7503fbe7bb9d53c78b9d5bc53ee4ebf5725d5be5a25d53ede06993e045aa33e9c3d663f000080bf2882283f58fdcd3d9c1532be7db9d53c20c057bc11a003bf98f1ccbe0231423f23e5063f94e70c3f62c9253f000080bf36842b3f9463e13db9f545be9711cd3ccbcc4cbd692e5ebf0d4afdbefc41383d9d44f7ba882fc03db0de7e3f000080bfb1a6223f2c1bc43dca503fbe7db9d53c9d1532be58ee4ebf4e25d5be4e25d5be41ccafbe5ed776beea61683f000080bfa0a0033fac11c03d9d1532be7bb9d53cc9503fbe5025d5be5125d5be57ee4ebfd4fa19bfbe640abfbb93163f000080bf1d30003fec08d13dcbcc4cbececc4c3d999919be7e487fbf999758bd9b9758bdd2134dbd1eaf59bd14517f3f000080bf1cd0093f56de8d3db9f545bececc4c3d992a33be692e5ebfd04138bd084afdbe4c17f5be5ddf42be866b5b3f000080bfdf78033fceea943dcbcc4cbecccc4c3dcbcc4cbd7e487fbfa79758bda697583d4d65313d231e2c3e371d7c3f000080bf3ec3223f2049973db9f545bececc4c3d9811cdbc672e5ebfec4138bd0e4afd3ec1c5eb3e60ea993e54d0553f000080bf61e1283f6609a33db9f545be9899193ea011cdbc692e5ebfdd41383d0b4afd3ebf9ff73e71889b3eee23523f000080bf60e1283fa058293ccbcc4cbe9999193ecbcc4cbd7e487fbf9b97583d9e97583db0ba7e3d4058463e8ba57a3f000080bf3ec3223fc0ac963bcbcc4cbe9999193e989919be7e487fbfa697583da39758bd611b67bd4d208bbdf7ff7e3f000080bf1dd0093f00000000b9f545be9899193e992a33be692e5ebf0342383d0a4afdbe16e9fcbef3c83bbe8394593f000080bfdf78033f808f613bb9f545bececc4c3d9811cdbc672e5ebfec4138bd0e4afd3e3299cf3e8eb523bf2a37273f000080bf5afd6e3f9405d93ec7503fbe7bb9d53c78b9d5bc53ee4ebf5725d5be5a25d53e9a2e153fb9992abfb420ee3e000080bf5e5d743fca2edf3e9c1532be7db9d53c20c057bc11a003bf98f1ccbe0231423f27bd293f151c3fbf2149633d000080bf3ca6763f0d9dda3e982a33bececc4c3d40e2dabb89f80fbf9fb20abd9c80533f0c791d3fc7512fbf9603c83e000080bf1a3c723f1688d23e992a33be9899193e60e2dabb8af80fbfb1b20a3d9c80533f604f213f332221bf58d1e83e000080bf9d8d603f1e2baf3eb9f545be9899193ea011cdbc692e5ebfdd41383d0b4afd3e9a4bc83e15460dbfcf8a3c3f000080bfde4e5d3f9ca8b53eca503fbe9c15323e80b9d5bc57ee4ebf5125d53e5525d53e0728803ecf44cbbed60d623f000080bf443a5a3f96e8aa3e9d1532be9c15323e40c057bc787debbedd46eb3e0382423fb087093fb08b09bff570263f000080bf22835c3fd956a63e0ad723be9999193e6d562fbb6d4c84be5a5fad3c273f773fa885333fd2fa2ebf0a754f3e000080bf1a33633f24e0a93e0ad723bececc4c3d59562fbbc78584be4329e0bc432d773f61d62f3f224135bf6400283e000080bf96e1743f1c3dcd3e0ad723bec33d1f3e6eca8abb8dbd84be21bb823e2b736e3f959b283fd69c28bf994dba3e000080bfbc39623f69eda73e0ad723be57b0d03c23e719bc86347abea39706bf1796503f86f2323f73882dbf383e69be000080bfb837793f62e9d53e0ad723be2de7193c54b0d0bcbc7973befb4f48bf4a54133f8790293f3f6110bf787efcbe000080bfa20f7c3f3599db3e9c1532be2bc0573c78b9d5bc026c06bf4d723fbf81fdcf3ea34e1e3f2ec829bf40dcd7be000080bf1bef783fca2edf3e999919be982a333e60e2dabb4ed907bd5532103f125b533fcc5c273f59d31cbf0c6fe33e000080bf9d8d603f93829d3e235b21be235b213e37b088bbfeed6cbe7587723e5e8f713f43cf2a3f76cf2abffa83a93e000080bf0e4a623fd856a63e27731ebe0ad7233e639e83bb661a87bebe467f3e7a896e3f61ae283fd6ad28bfc9cbb93e000080bfb85c623f507aa43e999919be0ad7233e74562fbb0a45c6bb6e53843e2a4c773f0bd92e3f975b34bf2f65453e000080bf1a33633f8ccda23ececc4cbd982a333e60e2dabbb2b20a3d8af80f3f9a80533fc0512f3f10791dbf9d03c83e000080bf1a3c723f364b743e999919beb9f5453ea011cdbcf74138bd672e5e3f124afd3e3471153f6f0fc2beccd0373f000080bfde4e5d3f1505973ececc4cbdb9f5453ea011cdbcf841383d672e5e3f124afd3e90b5233f3399cfbe2837273f000080bf5afd6e3f3a50673ecccc4cbd0ad7233e74562fbbbf21ba3c4f4b843efb3c773f6855353fa5952fbf82d72a3e000080bf96e1743f28e17e3e7db9d5bcc7503f3e80b9d5bc5825d53e51ee4e3f5a25d53eb3be403f002b10bf0a5eae3e000080bf5e5d743fcffd5a3e7cb9d5bc9c15323e40c057bc7efdcf3e046c063f4d723f3f8e7c3f3fa34229bf9a3c6d3d000080bf3ca6763f4821643e07d723bd0ad7233e0e77b4bb18c5843ecffb813e448c6e3f511e353fb2ea34bf8a6c8ebb000080bf3ca6763f90ce773e2bc057bc9c15323e80b9d5bc4b723f3f076c063f82fdcf3e43b7263fc5f732bff02897be000080bf1bef783fcefd5a3e54b0d0bc0ad7233e3ae719bc4754133fd679733efd4f483f5289263fc78136bfa80e86be000080bfb837793f9e886d3e2de719bc0ad7233e5cb0d0bcf94f483fc879733e4c54133f3c61103f999029bf4f7efcbe000080bfa20f7c3ff728623ececc4cbdb9f545bea011cdbcf341383d692e5ebf064afd3eb3aa173f6f03d83e31b12f3f000080bf6e916f3ffe542a3f7cb9d5bcc9503fbe80b9d5bc5325d53e54ee4ebf5325d53eada0203f6d36163fb509033f000080bfdac2743fd4b52d3f7db9d5bc9d1532be40c057bc642bcf3e4d9105bfe343403f5e37363fc6ff313f8be3cb3d000080bfba2b773fd28e2b3fcecc4cbd992a33be60e2dabbeaf8003d13ab10bfcf0c533fc711243f55f4243f079cd53e000080bfa2fd723f5846273f989919be992a33be40e2dabbbc2a0ebd8cc10fbfb3a3533ffbd7163ffb19283f2408f13e000080bf3855623f28a0143f989919beb9f545be9811cdbcd94138bd6a2e5ebf064afd3e5ce8023f8191cf3ebdfa413f000080bf03e95e3fceae173f9c1532bec9503fbe78b9d5bc5325d5be54ee4ebf5525d53e38c6b73e82948c3e455e643f000080bf24235c3f9224123f9c1532be9c1532be20c057bc0dc2e9bebc7ee9be6890433f99db013ffe6c123fc905253f000080bf048c5e3f90fd0f3f0ad723bd0ad723be0677b4bb2ca7853ed91881be838b6e3fb3742a3f8ff53e3f24e67a3c000080bfa472773f80a5263fcecc4cbd0ad723be6d562fbb18484c3c5a5184be6948773f876c2a3f4b13393f75433d3e000080bf32c8753f15c8243f57b0d0bc0ad723be38e719bc4754133fcb7973befd4f483fbd211e3f7fe0403fa4c866be000080bf0fde793ff75a293f2bc057bc9c1532be80b9d5bc0231423f0ca003bfa1f1cc3e8ed2253fb369293fc244c1be000080bfbc52793fb2f72d3f2de719bc0ad723be5cb0d0bc1696503f8d347abea697063f4cf2033fd172383f2a87edbe000080bfd48b7c3fb65a2c3f999919be0ad723be5d562fbb2ef292bba35384beb24c773f906d243fb05a3d3ff2b14d3e000080bfc81f653fe421123f6c2c1dbe0ad723bede1a70bb651a87be98467fbe7d896e3fbffb1e3fa8fb313f1648b93e000080bff68a643f487b113ff85820bef75820be9ed46dbb791864be538972be2817723ff446213f198f343f3b6ca63e000080bf9ca9643fdc55103f0ad723be2e811cbe52fb63bb316485be1f9782beda606e3fe4d31e3f8ada313f4c4fba3e000080bf56cb643ffe120f3f0ad723be989919be59562fbb124d84be8fb3a5bc6140773f3b0c2a3fafe2383f0a78453e000080bfc252653f089a0e3f982a33be989919be40e2dabb89f80fbf9fb20abd9c80533f290d1a3fcf222b3f70c1df3e000080bf7ed4623f78cf0b3f992a33becfcc4cbd60e2dabb8af80fbfb3b20a3d9c80533f4bb2143fae303a3fb82cbb3e000080bfae7a753f1a4ef63e0ad723bececc4cbd6d562fbbc98584beb529e03c432d773fc360253f23803f3fd39f1b3e000080bff2f8773f3ae3fb3eb9f545be989919be9811cdbc692e5ebfeb4138bd0d4afd3e3252c03eaa9d173fde7c363f000080bfd8c55f3f4363083fc7503fbe9d1532be78b9d5bc53ee4ebf5725d5be5a25d53e4e2e663e58e0de3e3a2c5f3f000080bf02655c3fb0940d3fb9f545becfcc4cbda011cdbc692e5ebfdd41383d0d4afd3ee915c63e77942f3fabca1d3f000080bf086c723fb075ef3eca503fbe80b9d5bc80b9d5bc57ee4ebf5125d53e5325d53e1286133f5249343f0251d43e000080bf45f6773ff2e9e93e9d1532be80b9d5bc40c057bc0da003bf9af1cc3e0431423ff0b6363fb8ac303fa3f0f43d000080bf471d7a3fb2bbee3e0ad723be5cb0d0bc36e719bc96347abea397063f1696503f438e3c3fd9ab253f056d49be000080bfd48b7c3f81b7f33e6b562fbb0ad723bececc4cbd432d773fc08584be8329e03cc825df3bb4c9a3bd8f2c7fbf000080bfd2dcbb3e839ebb3e2de719bc0ad723be5cb0d0bc1696503f8d347abea697063f1fede93eae4393be407c57bf000080bfe1bbaf3e1601be3e2bc057bc9c1532be80b9d5bc0231423f0ca003bfa1f1cc3ed7b1963e702e8ebebd1a6abf000080bfd0dbaf3e443fc43e4fe2dabb992a33becfcc4cbd9d80533f87f80fbfb5b20a3ddbc75d3cfcf224bdd4c47fbf000080bf59aabb3ee750c23e7cb9d5bcc9503fbe80b9d5bc5325d53e54ee4ebf5325d53e67a98f3e7881a4be408a67bf000080bfd0dbaf3ebc62cd3e7db9d5bc9d1532be40c057bc642bcf3e4d9105bfe343403f3b30043fc8260cbfeb9428bf000080bf2fa3a93ee9d4c83e4fe2dabb992a33be989919be9c80533f88f80fbfaab20abd3fce60bc04d7233d5fc57fbf000080bf9c9ced3edf4ec23e60562fbb0ad723be989919beb23e773f254c84be7b2eb0bc00000000ee7da23d65317fbf000080bf15cfed3e7b9cbb3e2bc057bc9d1532be9c1532be3d22423f7518ecbeb7e7ebbe426eb3be687c9d3e377762bf000080bf9fb0f93e443cc43e93ec93bb0ad723bec73f20beea776e3f129284bea5c482beb67151be12b5543e75e174bf000080bfce15f13e5743bc3e9911cdbcb9f545be989919be064afd3e6a2e5ebfe64138bd1c1855bda6ffb43c3b977fbf000080bf9c9ced3ed749cf3e9711cdbcb9f545becfcc4cbd064afd3e6a2e5ebfe841383d4eed533d8d55b6bcf6977fbf000080bf59aabb3edf4bcf3e4fe2dabb989919be992a33be9644533fefe305bd195510bf23fe09bfff20813e41bb4dbf000080bfef87fa3e2581b93e1cd291bbcddf21beccdf21be57bb713f82106cbe7da070be4cee44be2fa9453e395076bf000080bf43e9f13e3b90bb3ec3078dbb097d1fbe0ad723be7f896e3f501a87bea7467fbe2f874cbe74964d3e058575bf000080bfc6e8f23ea6b0ba3e6b562fbb999919be0ad723bea54b773f9a97efbb125384be380c80be9496683ea7f270bf000080bfc0fbf23ece15b83e60562fbbcecc4cbd0ad723befd3c773fa121ba3c3a4b84be1bd281be6cd8953e2e076cbf000080bf24c8f43e14d5943e4fe2dabbcfcc4cbd992a33be9c80533fa9b20a3d88f80fbfcfbb0bbfb144973e42b948bf000080bf5254fc3e6c40963e2bc057bc80b9d5bc9d1532be4b723f3f82fdcf3e066c06bf61a622bfaa91553eaf573ebf000080bf2e59fc3ecf1f903ef576b4bb0ad723bd0ad723be478c6e3f0dc5843ebbfb81bea49caabe5b2fab3ed9ae61bf000080bf3803f53ec74f923e2be719bc5cb0d0bc0ad723bef94f483f4c54133fc17973be81e1e7bef420873edc025abf000080bffc57f53ed2918e3ecccc4cbdcbcc4cbecbcc4cbda397583d7e487fbfa397583dd79ee33dc4793fbde0217ebf000080bf8afebb3e0182da3ececc4cbdb9f545bea011cdbcf341383d692e5ebf064afd3e18997c3ee8c0f0be76ed58bf000080bfeca4af3eaf27d83e989919beb9f545be9811cdbcd94138bd6a2e5ebf064afd3e9b227b3eedb2fabe3c3356bf000080bf5071b13ecea0fb3e999919becbcc4cbecbcc4cbda39758bd7e487fbfa397583d8dbf063e718173bd2e517dbf000080bfeecabd3e22fbfd3ececc4cbdcbcc4cbe999919be9e97583d7e487fbfa39758bd526ae4bdd3613f3d181f7ebf000080bfcef0ed3efa7fda3e999919becbcc4cbe989919bea39758bd7e487fbf9e9758bd7b2e07bec295733d694d7dbf000080bf32bdef3e1af9fd3ececc4cbdb9f545be992a33bef041383d6a2e5ebf064afdbefffa7cbecdb8f03e94e858bf000080bfee87fa3ea324d83e999919beb9f545be992a33beeb4138bd6a2e5ebf064afdbe9a8c7bbe59aefa3ece2c56bf000080bf5254fc3ec49dfb3e7db9d5bcc9503fbe9c1532be5325d53e57ee4ebf5025d5be09cc8fbeb46da43e648867bf000080bf9eb0f93eba5fcd3e7bb9d5bc9c1532bec9503fbe5a25d53e4e25d5be54ee4ebfd90012bf0ea4123f73b716bf000080bf1d30003f60d1c83e4fe2dabb989919be992a33be9644533fefe305bd195510bfce262abda0fa7d3f2655f2bd000080bfb8512d3deff3253f2bc057bc9d1532be9c1532be3d22423f7518ecbeb7e7ebbede2f753e8fbd5a3fde0fecbe000080bfb04f9b3c4c93273f7bb9d5bc9c1532bec9503fbe5a25d53e4e25d5be54ee4ebfbf2bb83b24e3633fd73fe9be000080bfb84f9b3c6dce2a3f9711cdbc989919beb9f545be064afd3ee94138bd692e5ebf171125bdeb137f3f5ed098bd000080bfb8512d3dc98a2a3f9911cdbccfcc4cbdb9f545be044afd3ee541383d6a2e5ebf8110253dec137f3f31d0983d000080bf175a0f3eca8a2a3f4fe2dabbcfcc4cbd992a33be9c80533fa9b20a3d88f80fbf50a5253d34f77d3f1101f43d000080bf175a0f3eeff3253f2bc057bc80b9d5bc9d1532be4b723f3f82fdcf3e066c06bff598b2bdcb1c583f4466073f000080bf8e44273e4c93273f7db9d5bc80b9d5bcc9503fbe4f25d53e5625d53e55ee4ebfb651863c4bac623fe8cded3e000080bf8e44273e6dce2a3f7cb9d5bc40c057bc9c1532be9df1cc3e0331423f0ca003bfa2d58fbd5eb6153f0ae14e3f000080bf1231343e6dce2a3fcecc4cbd60e2dabb992a33bebab20a3d9a80533f8af80fbf8fabd2bbbc18103f8596533f000080bf84ae3a3e0bc9303fcecc4cbdcbcc4cbdcbcc4cbe9e97583da797583d7e487fbf29558b3baea27f3f99d0593d000080bf185a0f3e0bc9303fcccc4cbd989919becbcc4cbea097583d9e9758bd7e487fbf425b8bbbaea27f3f9ad059bd000080bfb8512d3d0ac9303fcecc4cbda011cdbcb9f545bef041383d0d4afd3e692e5ebf0000000034685e3f348bfd3e000080bf1b53283e0bc9303f989919bea011cdbcb9f545beee4138bd0a4afd3e692e5ebf06f97d3b486d5e3f6377fd3e000080bf1a53283e75ca493f989919be60e2dabb992a33beb7b20abd9c80533f8bf80fbf8aabd23bba18103f8596533f000080bf84ae3a3e75ca493f999919becbcc4cbdcbcc4cbea39758bda797583d7e487fbfa65b8bbbaea27f3fa5d0593d000080bf175a0f3e76ca493f9c1532be80b9d5bcc9503fbe5825d5be5a25d53e51ee4ebf1ca6923dd8b9663f20c6da3e000080bf8e44273e13c54f3fcecc4cbd992a33beb9f545bef141383d064afdbe6a2e5ebf0000000034685e3f328bfdbe000080bf48db923c0bc9303f7db9d5bcc9503fbe9c1532be5325d53e57ee4ebf5025d5be6bfaf53d7ab3003f5a265bbf000080bf20aecf3b6dce2a3fcecc4cbdb9f545be992a33bef041383d6a2e5ebf064afdbe8ba3493cecc5fd3ebf515ebf000080bf000000000bc9303f999919beb9f545be992a33beeb4138bd6a2e5ebf064afdbe87a349bcebc5fd3ebd515ebf000080bf0000000075ca493f999919be992a33beb9f545bee94138bd064afdbe6a2e5ebf0000000034685e3f328bfdbe000080bf48db923c75ca493f999919be999919becbcc4cbe9f9758bda39758bd7e487fbf755b8b3baea27f3fa1d059bd000080bfb4512d3d76ca493f9d1532be9d1532bec9503fbe5025d5be5525d5be57ee4ebfe834b8bb28e3633fcb3fe9be000080bfa84f9b3c13c54f3f9d1532bec9503fbe9c1532be5625d5be58ee4ebf4a25d5be57faf5bd78b3003f5c265bbf000080bf20aecf3b13c54f3f982a33becfcc4cbdb9f545be064afdbefa41383d692e5ebfd50f25bdec137f3f0fd0983d000080bf175a0f3eb608503f992a33be989919beb9f545be064afdbed34138bd6a2e5ebf3210253dec137f3f10d098bd000080bfb4512d3db608503fca503fbe9c1532be9d1532be58ee4ebf4a25d5be5225d5beefb469be5b965f3f2f48dcbe000080bfb04f9b3c3400533fb9f545be989919be992a33be692e5ebfd04138bd0b4afdbed76dc73cdea77d3feffe07be000080bfb4512d3d919f543fb9f545becfcc4cbd992a33be692e5ebf0442383d0a4afdbeec6cc7bce0a77d3fd6fe073e000080bf175a0f3e909f543fc7503fbe80b9d5bc9c1532be51ee4ebf5f25d53e5525d5be2cb5693e5b965f3f1b48dc3e000080bf8e44273e3400533f54b0d0bc3ae719bc0ad723bea397063f1696503f9b347abe9ae73b3f582894be414a1d3f000080bf28625a3f0c78f13e2be719bc5cb0d0bc0ad723bef94f483f4c54133fc17973be8a791a3f22461bbf0f87043f000080bf24235c3f8aaced3e2bc057bc80b9d5bc9d1532be4b723f3f82fdcf3e066c06bf0b98283f6bc50dbf1b6f023f000080bffc11593ff2e9e93e7cb9d5bc40c057bc9c1532be9df1cc3e0331423f0ca003bf7aef5d3f44c906beb721f63e000080bf3aa9573f8af6ec3ecccc4cbd77562fbb0ad723be9629e03c432d773fca8584becd833b3fe598203e2198293f000080bfe199563fb2edf83ececc4cbd60e2dabb992a33bebab20a3d9a80533f8af80fbfefa3463f8874aa3e442a093f000080bfecc9533f56dbf33e999919be6d562fbb0ad723be6da6a8bce93f773fd54c84bed91c2e3f11d64f3efc55343f000080bfa679453f43f50c3f989919be60e2dabb992a33beb7b20abd9c80533f8bf80fbf8d5e1d3f69faeb3eaddb233f000080bfb2a9423f156c0a3f9c1532be40c057bc9c1532be6830eabe5427433f526feabebb17f53e151f253f8b7d183f000080bf6a583e3fe4dc0e3f989919bea011cdbcb9f545beee4138bd0a4afd3e692e5ebf65d5d93e26a84b3f60e1dc3e000080bfd5603e3f9af1073f9c1532be80b9d5bcc9503fbe5825d5be5a25d53e51ee4ebfe3828e3ee199673f4829a53e000080bf31543b3f331e0d3fd38d1dbe530077bb0ad723be91a882be7d686e3f771c85be895f243f9480ba3e87b02c3f000080bff3be443f72a50d3fc7503fbe80b9d5bc9c1532be51ee4ebf5f25d53e5525d5bea2955c3e4e015e3f94dbe53e000080bf31543b3fc199113f982a33be60e2dabb989919bef2ed0fbf2b87533fa7ae0bbd31331b3f9334e13eb69d293f000080bfb2a9423f7d15133fc1b120be1b0e7abbc1b120be95a672be7bdc713f61d567bebd12283ff0ada73efaf22d3f000080bf6fbe443f9db60e3f0ad723be410077bbd28d1dbebc467fbe7f896e3f431a87bec653243f29dcb93e00e82c3f000080bff4be443fa3c60f3f0ad723be74562fbb999919bea15384be8d4c773fbf4fa2bb8b8b333f1bc0433e1acc2f3f000080bfa679453f646d103f0ad723be6d562fbbcecc4cbd4b4b84befb3c773fb121ba3caff5343faf22313e9f942f3f000080bfe199563f42a0223fb9f545bea011cdbc989919be672e5ebf0e4afd3e004238bde048cd3e2548403ff544063f000080bfd6603e3ffef8163fcbcc4cbecbcc4cbd989919be7e487fbfa797583d9f9758bd4ce2df3ca1776a3fb10ecd3e000080bf70ae3b3f183f193fb9f545becfcc4cbd992a33be692e5ebf0442383d0a4afdbe4e3fb9bda805773f6b587c3e000080bfae8c383fdb99133fcbcc4cbecbcc4cbdcbcc4cbd7e487fbf9d97583d9e97583de31b943d03a55c3ff77c003f000080bfabce4c3ff7712b3fb9f545bea011cdbccfcc4cbd692e5ebf0f4afd3ed041383daf5ad93eb80e313ffa95153f000080bf10814f3fdd2b293f992a33be60e2dabbcfcc4cbd8bf80fbf9c80533f98b20a3dfdf71b3f42cec53e8747313f000080bfecc9533f5c48253f9d1532be40c057bc80b9d5bc026c06bf50723f3f80fdcf3ea5c3303faa34c33de08f373f000080bf3aa9573fb0c3293f0ad723be0677b4bb0ad723bdc7fb81be448c6e3f18c5843ef7293d3f0fe7623c43742c3f000080bf3623583f2e94243f0ad723be36e719bc5cb0d0bccc7973befb4f483f4954133f6584453fd6c554be43ed193f000080bf28625a3f9967273f0ad723be5cb0d0bc36e719bc96347abea397063f1696503fc3ea443f1826d0bef869fc3e000080bf24235c3f10162b3f9d1532be80b9d5bc40c057bc0da003bf9af1cc3e0431423f27ac413f10f551bea3f81e3f000080bffc11593ff2b82c3fca503fbe80b9d5bc80b9d5bc57ee4ebf5125d53e5325d53e6b7c153fac14f43ee236283f000080bf01a5543f8d802c3fb9f545becfcc4cbda011cdbc692e5ebfdd41383d0d4afd3e6aaaaf3e6d43463f0610083f000080bf253a523f1ae32e3f999919becbcc4cbecbcc4cbda39758bd7e487fbfa397583da6a07fbf68fb553d1af05abc000080bf000040325fd1763f989919beb9f545be9811cdbcd94138bd6a2e5ebf064afd3e07317ebf2c05bf3dd134963d000080bfe074973b8aff7c3f9c1532bec9503fbe78b9d5bc5325d5be54ee4ebf5525d53ea01861bf28ebf23ed2d42b3d000080bf77afd13c71e17c3f982a33beb9f545becbcc4cbd064afdbe6a2e5ebff641383d0d765ebf0245fd3e491151bc000080bf72dfb23cb1f8763f992a33beb9f545be989919be064afdbe692e5ebfdd4138bd28515ebf14c7fd3eba134ebc000080bf70dfb23c76fe5d3f999919becbcc4cbe989919bea39758bd7e487fbf9e9758bd46747fbf3e70603d5a3a11bd000080bf0000000023d75d3f9d1532bec9503fbe9c1532be5625d5be58ee4ebf4a25d5be080960bfe9f9f53e6e4d6cbd000080bf76afd13c68f5573f999919beb9f545be992a33beeb4138bd6a2e5ebf064afdbece8f7cbfbf75ee3d4a9eeabd000080bfd074973b628c573fb9f545be992a33be989919be692e5ebf0a4afdbed54138bd62c6fdbe82515e3f39614b3c000080bf8a47413d9afe5d3fc7503fbe9d1532be78b9d5bc53ee4ebf5725d5be5a25d53e9ff3f2bed315613f9d842cbd000080bf80f3313d8be17c3f9c1532be9c1532be20c057bc0dc2e9bebc7ee9be6890433fddfd34bf090c353f00000000000080bfb9760d3d0000803fb9f545be992a33becbcc4cbd692e5ebf0b4afdbefe41383d0746fdbeec755e3ffc4e4e3c000080bf8b47413dd6f8763fca503fbe9c1532be9d1532be58ee4ebf4a25d5be5225d5bef0f1f5beea0b603f18a46b3d000080bf8af3313d82f5573f9d1532be9d1532bec9503fbe5025d5be5525d5be57ee4ebf470135bf9f08353f00000000000080bfb7760d3d909f543fcbcc4cbe989919be999919be7e487fbf969758bd999758bda2eb5fbd4c7a7f3fff15073d000080bfd6738d3d86d75d3fb9f545be989919be992a33be692e5ebfd04138bd0b4afdbe9eb7b1bdf38a7e3fa0397d3d000080bf5e05843db88c573fcbcc4cbe999919becbcc4cbd7e487fbfa49758bda397583d636c53bd33947f3f706acc3c000080bfd4738d3dc3d1763fb9f545be989919be9811cdbc692e5ebfeb4138bd0d4afd3e16b370bdc3897f3f91f449bc000080bf6105843de1ff7c3fb9f545becfcc4cbda011cdbc692e5ebfdd41383d0d4afd3ea19d643d2c987f3f6fa9e93b000080bfacdd083eed297c3fcbcc4cbecbcc4cbdcbcc4cbd7e487fbf9d97583d9e97583d70805f3ddb7e7f3fcbcdfd3c000080bfe7940d3ecffb753fcbcc4cbecbcc4cbd989919be7e487fbfa797583d9f9758bdd9e4503d837f7f3f169e143d000080bfe7940d3e93015d3fb9f545becfcc4cbd992a33be692e5ebf0442383d0a4afdbec645b93c8d997f3fff5b513d000080bfabdd083ec5b6563f9899193eb9f545bea011cdbcf341383d692e5ebf084afd3ef6450dbfaf4bc83ee18a3c3f000080bfcea83b3f32a6433f9c15323ec9503fbe80b9d5bc4f25d53e55ee4ebf5725d53ead44cbbe2528803ed90d623f000080bf3494383f3506493f9c15323e9d1532be40c057bc5b81ee3eb082eebe6d98403f8b2f08bf732f083f8aa6283f000080bf12dd3a3f144f4b3f9899193e992a33be60e2dabb35eb033d0e7510bffa2f533f4c2121bf8934213f261ee93e000080bf8de73e3ff0e4463fcfcc4c3d992a33be40e2dabbbdf800bd12ab10bfd00c533fd3632fbf57de1c3fd5a8c93e000080bf0996503f7536353fcfcc4c3db9f545be9811cdbcda4138bd692e5ebf0a4afd3e91b523bf2999cf3e2b37273f000080bf4a574d3fb6f7313f80b9d53cc9503fbe78b9d5bc5325d5be54ee4ebf5525d53ec9992abf942e153f9220ee3e000080bf4eb7523f1be32e3f80b9d53c9c1532be20c057bc682bcfbe499105bfe443403f47833fbf3e44293fca92663d000080bf2c00553ffa2b313f20731e3e0ad723be1d9e83bb6d1a873eb7467fbe7a896e3f0aae28bf2eae283fcbcbb93e000080bfaab6403fce604a3f9899193e0ad723be6d562fbba344c63b5c5384be2e4c773f0dd92ebf975b343f1065453e000080bf0a8d413f6d8a493fcecc4c3d0ad723be5d562fbb6b474cbc595184be6b48773f5a4235bf1c352f3fcf24323e000080bf863b533ff2db373f06d7233d0ad723befd76b4bb20a785bec91881be868b6e3f7ff434bf5f13353f3103d9bb000080bf2c00553f4b17363f5cb0d03c0ad723be23e719bc4d5413bfb57973bef94f483f498926bfce81363faf0e86be000080bfa891573fcf85333f40c0573c9d1532be78b9d5bc023142bf0fa003bf9bf1cc3ebf9f26bf997d203f513adbbe000080bf0a49573f1be32e3f38e7193c0ad723be54b0d0bc189650bf87347abea197063f8d3508bf45e22c3fb2be02bf000080bf92695a3fe6ad303f1e5b213e205b21befaaf88bb5edf833ee7e182beaa8c6e3f1cae28bf1cae283fc7cbb93e000080bf00a4403f144f4b3f0ad7233ebd3d1fbe37ca8abbb7467f3e6d1a87be7a896e3f1eae28bf1aae283fcacbb93e000080bfad93403f5d1a4c3f992a333e989919be60e2dabba482103f852d03bd2627533f923121bf4121213f7c26e93e000080bf8de73e3f37b94f3fc9503f3e9c1532be80b9d5bc54ee4e3f5025d5be5d25d53e322880be9f44cb3edb0d623f000080bf3494383ff2974d3fb9f5453e989919bea011cdbc692e5e3ff04138bd0d4afd3ea14bc8be0c460d3fd48a3c3f000080bfcea83b3ff6f7523f0ad7233e999919be77562fbb2f53843e70cae5bbc54b773fd44d34bfaedb2e3fc808463e000080bf0a8d413fba134d3fb9f5453ecfcc4cbda011cdbc692e5e3ff041383d0d4afd3e2299cfbe9fb5233f1f37273f000080bf4a574d3f72a6643f992a333ecfcc4cbd60e2dabb8af80f3fb7b20a3d9c80533f09791dbfcc512f3f9203c83e000080bf0996503fb367613f0ad7233ececc4cbd6d562fbb464b843ec021ba3cfd3c773f9c952fbf7255353f69d72a3e000080bf863b533f36c25e3f9c15323e80b9d5bc40c057bc026c063f82fdcf3e4e723f3f964229bf9b7c3f3f5e3b6d3d000080bf2c00553f2e72653fc9503f3e80b9d5bc80b9d5bc53ee4e3f5a25d53e5a25d53efd2a10bfb9be403ff35dae3e000080bf4eb7523f0cbb673f0ad7233e07d723bd0e77b4bbcdfb813e1bc5843e428c6e3fa5ea34bf5e1e353f01718ebb000080bf2c00553fdc86603f9c15323e40c057bc80b9d5bc026c063f4e723f3f82fdcf3ec6f732bf40b7263fff2897be000080bf0b49573f0cbb673f0ad7233e5cb0d0bc3ae719bcd179733e4a54133ffa4f483fb18136bf6189263fd30e86be000080bfa891573f5818633f0ad7233e3ae719bc5cb0d0bcd179733efa4f483f4a54133fac9029bf3661103f317efcbe000080bf92695a3f42f0653f9c15323ec9503fbe80b9d5bc4f25d53e55ee4ebf5725d53e78ba8fbec377a43e5589673f000080bf6a72283f7e70b23ec9503f3e9c1532be80b9d5bc54ee4e3f5025d5be5d25d53ebeeda3be2dac903e2a7c673f000080bf3a72283ff593bb3e9c15323e9d1532be40c057bc5b81ee3eb082eebe6d98403f84d907bf5b85083f78a6283f000080bfa38e2b3f93feb63eb9f5453e992a33becfcc4cbd692e5e3f064afdbef541383ddb2db2bc218f573da8957f3f000080bfec8a223fd881bd3ecbcc4c3e989919becbcc4cbd7e487f3f9b9758bda697583dd11f3fbd0f9be63d60177e3f000080bf9a60223fa8adc83eb9f5453e989919bea011cdbc692e5e3ff04138bd0d4afd3ef485f0bef35e7f3edbc9583f000080bf758d283f0c4fc63ecbcc4c3ecbcc4cbdcbcc4cbd7e487f3fa297583da297583de14e78bdb55b213e30537c3f000080bfb079213f4eeeeb3eb9f5453ecfcc4cbda011cdbc692e5e3ff041383d0d4afd3e6f6cf8be5598943e3728533f000080bf8ba6273fb28fe93ec9503f3e80b9d5bc80b9d5bc53ee4e3f5a25d53e5a25d53e45780abfbad17b3ee3e84d3f000080bfe41c273f4db0ef3eb9f5453ea011cdbccfcc4cbd692e5e3f0a4afd3eeb41383d456523bed07c443e65e6773f000080bfb530213fe65cf23ecbcc4c3ecbcc4cbd999919be7e487f3fa397583da09758bdd44e783d8d5b21be30537c3f000080bf8e80083f4eeeeb3eb9f5453ea011cdbc989919be692e5e3f0d4afd3eee4138bd2365233e8a7c44be6be6773f000080bf9337083fe65cf23ec9503f3e80b9d5bc9d1532be54ee4e3f5b25d53e5525d5be3b780a3f51d17bbef1e84d3f000080bf7c32023f4eb0ef3eb9f5453ecfcc4cbd992a33be692e5e3fea41383d064afdbe696cf83e3f9894be3b28533f000080bf0a35023fb28fe93ecbcc4c3e999919be989919be7e487f3f9e9758bd9b9758bdc61f3f3d029be6bd60177e3f000080bf7767093fa8adc83eb9f5453e989919be992a33be6a2e5e3fea4138bd044afdbeed85f03ed75e7fbedec9583f000080bff41b033f0c4fc63ec9503f3e9d1532be9c1532be55ee4e3f5625d5be4f25d5beb6eda33e1dac90be2d7c673f000080bfd387033ff693bb3eb9f5453e992a33be989919be692e5e3f064afdbeed4138bd802eb23c828e57bdaa957f3f000080bfca91093fd881bd3e992a333eb9f545be989919be064afd3e692e5ebfed4138bda981543de4abb5bc9b977f3f000080bf0e92093fe186b03e992a333eb9f545becfcc4cbd064afd3e6a2e5ebff041383dac8154bde6abb53c9b977f3f000080bf308b223fe086b03e9c15323ec9503fbe9c1532be4d25d53e57ee4ebf5525d5be4eba8f3ed677a4be5689673f000080bf0288033f7e70b23e9d15323e9c1532bec9503fbe5a25d53e4e25d5be54ee4ebf4dfa113f97aa12bf72b7163f000080bf1d30003f94feb63e9899193ecbcc4cbe999919be9e97583d7e487fbf9f9758bdf903e43dd96d3fbd7f207e3f000080bf2f68093fba50a53e9899193eb9f545be992a33bef041383d6a2e5ebf064afdbe47c97c3eebbcf0be0feb583f000080bf931c033f8eaba73e9999193ecbcc4cbecbcc4cbda297583d7e487fbfa397583d0e04e4bdd96d3f3d7d207e3f000080bf5161223fba50a53e9899193eb9f545bea011cdbcf341383d692e5ebf084afd3e78c97cbee6bcf03e0ceb583f000080bf148e283f8eaba73ecfcc4c3db9f545be9811cdbcda4138bd692e5ebf0a4afd3eff567bbeb0b0fa3e0e30563f000080bf9ba8273f5b32843ecbcc4c3dcbcc4cbecbcc4cbda39758bd7e487fbfa297583dadf606be8d8b733d504f7d3f000080bfd87b213f86d7813ecbcc4c3dcbcc4cbe989919bea39758bd7e487fbf9e9758bdbef6063e8c8b73bd4e4f7d3f000080bfb682083f86d7813ecbcc4c3db9f545be992a33beed4138bd692e5ebf064afdbe0e577b3ea9b0fabe0e30563f000080bf1937023f5b32843e0ad7233e1877b4bb06d723bdc8fb813e448c6e3f19c5843e44d526bfef7b08bd05fc413f000080bf3471773fd9a1343f0ad7233e3ae719bc5cb0d0bcd179733efa4f483f4a54133ff5043fbfc8c06dbeb2bb1f3f000080bffe677a3f7792323f9c15323e40c057bc80b9d5bc026c063f4e723f3f82fdcf3e9a443fbf91be343e870b243f000080bf0c50783f2464303f0ad7233e77562fbbcecc4cbd474b843efd3c773fcf21ba3cbd1527bf74f4203e3bbc3d3f000080bf1865753f520a363f992a333e60e2dabbcfcc4cbd8af80f3f9c80533fb8b20a3dacb121bf253bce3e2095293f000080bf6c44733fac95333f992a333e60e2dabb989919be2eea0f3f9789533f8ae40bbd0c702bbfd346f53e8646113f000080bf1002603f3482433fc9503f3e80b9d5bc80b9d5bc53ee4e3f5a25d53e5a25d53e7d8816bf5e35093f50141b3f000080bfaee1763f1be32e3fb9f5453ea011cdbccfcc4cbd692e5e3f0a4afd3eeb41383d4bf9dfbee7de373feb830a3f000080bf0a3c713fc572313f0ad7233e6d562fbb989919bea053843e984c773fe77b9ebb862b36bf836a463ecae22c3f000080bfbc22623fdaf6453fb9f5453ea011cdbc989919be692e5e3f0d4afd3eee4138bd701fddbe36d44b3f1bf1d83e000080bfaef95d3f4d5f413f0ad7233efc4775bb87751dbeb1467f3e7c896e3f621a87be3c4c2fbf677cb93e82e1213f000080bfa274613f43a2463f72a5203e465c78bb71a520bec1e2723e83d4713f631b68be21cf2fbfd9f9a73e400d263f000080bf5a56613fd3b2473f87751d3e0e4875bb0ad723be6aa6823e1f686e3f322185be170f2fbfbb56ba3effe4213f000080bf7736613fc9c1483f9c15323e40c057bc9c1532be7520ea3ec830433fcd5feabeead21abfeedc243f9de1ef3e000080bfefd75b3f1dee473fc9503f3e80b9d5bc9d1532be54ee4e3f5b25d53e5525d5beeda3abbe0220683f99fa823e000080bf91695a3f146d463f9999193e77562fbb0ad723be5362a83cf43f773fdc4c84be6b1231bffe294d3e16a0313f000080bff7be613f185f493f9899193e60e2dabb992a33beb8b20a3d9c80533f8bf80fbf793c31bf05b6d93e7c3e153f000080bff7085f3ff4034c3fcecc4c3d6d562fbb0ad723be8c29e0bc412d773fcd8584be292f2ebf89d22f3e3162363f000080bf9e1b713f01855b3fcfcc4c3d60e2dabb992a33beb7b20abd9c80533f8af80fbfcc9435bf66ccc03ebf8c183f000080bf9e656e3fdc295e3f80b9d53c40c057bc9c1532be9cf1ccbe0231423f0fa003bf0c9e34bfb2d7d23df07e333f000080bf3b8d723fc0c1623f5cb0d03c3ae719bc0ad723bea59706bf1696503f9b347abec6081cbfe55224be10c0463f000080bfd429753f5968603fcfcc4c3da011cdbcb9f545beee4138bd0b4afd3e692e5ebfe3da3abf03af133f2fbbbb3e000080bf20a66b3fc947623f80b9d53c80b9d5bcc9503fbe5825d5be5825d53e54ee4ebf586241bf3a3eac3e3ef30f3f000080bff49d703fbea7653f3ae7193c5cb0d0bc0ad723befa4f48bf4a54133fcd7973be89320bbf1f0ce4be6218363f000080bfb252783f625f643f40c0573c80b9d5bc9c1532be4d723fbf84fdcf3e026c06bfce4227bf08c89ebed4cb303f000080bf2517753f50f1653f1877b43b06d723bd0ad723be448c6ebf19c5843ecafb81be06b3b9beab5024bf02f62c3f000080bfe68a793fec05663f77562f3bcecc4cbd0ad723befd3c77bffd21ba3c3c4b84beead556be2b7927bf89053a3f000080bffe677a3f1730673f60e2da3bcfcc4cbd992a33be9c8053bfd2b20a3d8af80fbf8a08e6be7f5324bf94121f3f000080bf94e8763f31d8683fb9f5453e989919be992a33be6a2e5e3fea4138bd044afdbe566dc7bcdea77d3fe4fe07be000080bff266393f00000000c9503f3e9d1532be9c1532be55ee4e3f5625d5be4f25d5be19b5693e5b965f3f1d48dcbe000080bf546c333f20aecf3b9d15323e9c1532bec9503fbe5a25d53e4e25d5be54ee4ebf8439b83b2be3633fbe3fe9be000080bf546c333fa84f9b3c992a333e989919beb9f545be044afd3eea4138bd6a2e5ebf051025bdec137f3f12d098bd000080bff266393f48db923c992a333ecfcc4cbdb9f545be064afd3eed41383d6a2e5ebf4a10253dec137f3f28d0983d000080bf5c68523f48db923cb9f5453ecfcc4cbd992a33be692e5e3fea41383d064afdbe806dc73cdea77d3fecfe073e000080bf5c68523f00000000c9503f3e80b9d5bc9d1532be54ee4e3f5b25d53e5525d5be6da913be3558533f9faa0b3f000080bffa62583f40aecf3b9c15323e80b9d5bcc9503fbe4e25d53e5a25d53e54ee4ebf3952863c49ac623fedcded3e000080bffa62583fb84f9b3c9c15323e40c057bc9c1532be7520ea3ec830433fcd5feabe0ba1cebd7d4e0e3fa33a533f000080bf1b9e5b3fb84f9b3c9899193e60e2dabb992a33beb8b20a3d9c80533f8bf80fbf8cabd2bbbb18103f8596533f000080bf773d5d3fb8512d3d9899193ecbcc4cbdcbcc4cbe9997583da697583d7e487fbf16558b3baea27f3f97d0593d000080bf5c68523fb8512d3d9999193e989919becbcc4cbe9d97583d9d9758bd7e487fbf3f528bbbaea27f3f89d059bd000080bff266393fb4512d3d9899193ea011cdbcb9f545bef041383d0d4afd3e692e5ebf0000000032685e3f338bfd3e000080bf9da6583fb8512d3dcfcc4c3da011cdbcb9f545beee4138bd0b4afd3e692e5ebfd3147e3b496d5e3f6177fd3e000080bf9da6583f175a0f3ecfcc4c3d60e2dabb992a33beb7b20abd9c80533f8af80fbf8eabd23bba18103f8596533f000080bf773d5d3f175a0f3ecbcc4c3dcbcc4cbdcbcc4cbea09758bda297583d7e487fbf01548bbbaea27f3f8ed0593d000080bf5c68523f175a0f3e80b9d53c80b9d5bcc9503fbe5825d5be5825d53e54ee4ebf18a6923dd8b9663f1cc6da3e000080bffa62583f8d44273e9899193e992a33beb9f545bef041383d064afdbe6a2e5ebf0000000035685e3f2e8bfdbe000080bfb028333fb4512d3d9c15323ec9503fbe9c1532be4d25d53e57ee4ebf5525d5be56faf53d7db3003f59265bbf000080bf3331303fb04f9b3c9899193eb9f545be992a33bef041383d6a2e5ebf064afdbe8fa3493ceac5fd3ebf515ebf000080bfd6912e3fb4512d3dcbcc4c3db9f545be992a33beed4138bd692e5ebf064afdbe87a349bcebc5fd3ebd515ebf000080bfd6912e3f175a0f3ecbcc4c3d992a33beb9f545beeb4138bd064afdbe6a2e5ebf0000000034685e3f308bfdbe000080bfb028333f175a0f3ecbcc4c3d999919becbcc4cbe9e9758bda09758bd7e487fbf50558b3baea27f3f91d059bd000080bff266393f175a0f3e78b9d53c9d1532bec9503fbe5125d5be5525d5be57ee4ebf0535b8bb28e3633fcb3fe9be000080bf546c333f8e44273e78b9d53cc9503fbe9c1532be5825d5be57ee4ebf4925d5be5bfaf5bd78b3003f5c265bbf000080bf3231303f8e44273ea011cd3ccfcc4cbdb9f545be084afdbefb41383d692e5ebf3c1025bdec137f3f2dd0983d000080bf5c68523f1a53283e9811cd3c989919beb9f545be064afdbed54138bd6a2e5ebf4310253dec137f3f16d098bd000080bff266393f1b53283e20c0573c9c1532be9d1532be509042bf3566ebbedb2eebbefaf274be28e55a3fb98cebbe000080bf546c333f1331343e40e2da3b989919be992a33be205f53bf673708bd0c2c10bf43fd273d08f97d3fc71ff3bd000080bff266393f84ae3a3e60e2da3bcfcc4cbd992a33be9c8053bfd2b20a3d8af80fbfa9a425bd34f77d3fba00f43d000080bf5c68523f83ae3a3e40c0573c80b9d5bc9c1532be4d723fbf84fdcf3e026c06bf1679343e1650623feda7dd3e000080bffa62583f1231343ecbcc4c3dcbcc4cbecbcc4cbda39758bd7e487fbfa297583deb207f3f609765bd179c77bd000080bf0fb87d3f57cd063dcfcc4c3db9f545be9811cdbcda4138bd692e5ebf0a4afd3e486b7b3f752c04bed36e0cbe000080bf41087c3f5138173c80b9d53cc9503fbe78b9d5bc5325d5be54ee4ebf5525d53e3c0b5b3f86ce00bf2d77f8bd000080bfccb0763fe2ef3a3ca011cd3cb9f545becbcc4cbd084afdbe692e5ebff341383d81835d3f7f51febed3278abd000080bfae22783f59b20b3d9811cd3cb9f545be989919be084afdbe692e5ebfdb4138bd194b5e3f68a7fbbe6e0e88bd000080bfba2f7a3f287f063ecbcc4c3dcbcc4cbe989919bea39758bd7e487fbf9e9758bdd47d7f3f7cb950bda6b417bd000080bf1bc57f3fe845053e78b9d53cc9503fbe9c1532be5825d5be57ee4ebf4925d5bed18e643f6b6ce6be9e4b9bbc000080bfecb8793f72df1e3ecbcc4c3db9f545be992a33beed4138bd692e5ebf064afdbed6c97e3ff72fa7bd95eb573d000080bf7a1b7f3fa7be1e3e40e2da3b992a33be989919be9c8053bf89f80fbf94b20abd491e103f365852bfaf9db6bd000080bfd6b7733f4ca0083e40c0573c9d1532be78b9d5bc023142bf0fa003bf9bf1cc3e85e9063fdc6a58bff78fb2bd000080bf0023723f9fec523c80b9d53c9c1532be20c057bc682bcfbe499105bfe443403ff67b2f3f4d7637bfeba103be000080bf4427743f0000000060e2da3b992a33becbcc4cbd9c8053bf8af80fbfc5b20a3d91b30e3f921d53bfb95fc4bd000080bfcaaa713fec36143d6d562f3b0ad723becbcc4cbd432d77bfc28584beb129e03c26b0823e065376bf5b66c2bd000080bff7536e3fd7151a3d38e7193c0ad723be54b0d0bc189650bf87347abea197063fab38703edfde77bfc400b1bd000080bfe4026f3f2cfa5e3c5d562f3b0ad723be999919be3a3f77bf6e4c84bef7f4acbcc2b8843e540d76bfe16bc2bd000080bf0361703f08180a3e20c0573c9c1532be9d1532be509042bf3566ebbedb2eebbe1b5a0f3ffa6d52bf8781d4bd000080bf222b753f405f203e78b9d53c9d1532bec9503fbe5125d5be5525d5be57ee4ebf06ba413fedc526bf7d1a5ebd000080bf14b7773fc2eb2c3e5572893b0ad723becd171fbe71666ebf0cfa84be78da82be21f4943ea0c873bff918bdbd000080bfdac1703fdf650f3e40e2da3b989919be992a33be205f53bf673708bd0c2c10bffac5fc3d03177cbfc680fbbd000080bfefd66f3f67c5233e05678b3bb9e522be073320be75c073bfd60153bed11c67beeb5d6d3e0add77bfe360c0bd000080bfc7a0703f788e103e65e8893bda6c21bedb6c21be783571bfaf2171bedcf973be43f7863ee4c775bf8aa3bfbd000080bf4864703f97e1113e5062843bc9881ebe0ad723be7a896ebf721a87beab467fbe5ed7963e736f73bf6cd1c1bd000080bff3e96f3fe47d143e54562f3b989919be0ad723be234c77bf65a4c9bb575384be176c253d71b47dbf956902be000080bf54d36e3f54f7143e77562f3bcecc4cbd0ad723befd3c77bffd21ba3c3c4b84beb3fe363b9cc47ebf6699c8bd000080bf773d5d3faf1d1e3e60e2da3bcfcc4cbd992a33be9c8053bfd2b20a3d8af80fbf6c67ba3cb9d07ebfa533bfbd000080bf12415e3fc2eb2c3e + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 0, y: 0, z: -0.09999999} + m_Extent: {x: 0.19999997, y: 0.19999997, z: 0.09999999} + m_MeshUsageFlags: 0 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + m_MeshMetrics[0]: 1.6879306 + m_MeshMetrics[1]: 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: +--- !u!1 &1418001334 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -10415,31 +10206,31 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1656508554} + - component: {fileID: 1418001335} m_Layer: 0 - m_Name: Ring_0_Left + m_Name: Little_2_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1656508554 +--- !u!4 &1418001335 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1656508553} - m_LocalRotation: {x: 0.0037497291, y: 0.028980805, z: -0.08957866, w: 0.995551} - m_LocalPosition: {x: -0.060953286, y: -0.00000024797393, z: 0.00000015258789} + m_GameObject: {fileID: 1418001334} + m_LocalRotation: {x: 0.007898328, y: 0.0033098771, z: -0.14792106, w: 0.9889621} + m_LocalPosition: {x: -0.021837996, y: 0.000000052452087, z: 0.0000003004074} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 139777993} - m_Father: {fileID: 1884881952} + - {fileID: 1275973671} + m_Father: {fileID: 679583488} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1679561857 +--- !u!1 &1421788324 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -10447,62 +10238,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1679561858} + - component: {fileID: 1421788325} m_Layer: 0 - m_Name: RayOrigin + m_Name: Index_Tip_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1679561858 +--- !u!4 &1421788325 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1679561857} - m_LocalRotation: {x: 0.2164396, y: 0, z: 0, w: 0.97629607} - m_LocalPosition: {x: -0.0215, y: 0.0244, z: -0.0387} + m_GameObject: {fileID: 1421788324} + m_LocalRotation: {x: 0.000000029802326, y: 9.492409e-15, z: 0.00000031851238, w: 1} + m_LocalPosition: {x: -0.02301526, y: 0.000000085830685, z: -0.000000114440915} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1701227370} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 25, y: 0, z: 0} ---- !u!1 &1697840220 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1697840221} - m_Layer: 0 - m_Name: Thumb_1_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1697840221 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1697840220} - m_LocalRotation: {x: 0.0000025456518, y: 0.0000026570444, z: 0.10506754, w: 0.9944651} - m_LocalPosition: {x: -0.03307885, y: 0.000000052452087, z: -0.00000030398368} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1272409231} - m_Father: {fileID: 1882010424} + m_Father: {fileID: 512971542} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1701227369 +--- !u!1 &1423342052 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -10510,11 +10269,11 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1701227370} - - component: {fileID: 1701227373} - - component: {fileID: 1701227374} - - component: {fileID: 1701227372} - - component: {fileID: 1701227371} + - component: {fileID: 1423342053} + - component: {fileID: 1423342056} + - component: {fileID: 1423342057} + - component: {fileID: 1423342055} + - component: {fileID: 1423342054} m_Layer: 0 m_Name: Left Teleport Controller m_TagString: Untagged @@ -10522,29 +10281,29 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1701227370 +--- !u!4 &1423342053 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1701227369} + m_GameObject: {fileID: 1423342052} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1679561858} - m_Father: {fileID: 1401794268} + - {fileID: 1742313800} + m_Father: {fileID: 1773926310} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1701227371 +--- !u!114 &1423342054 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1701227369} + m_GameObject: {fileID: 1423342052} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} @@ -10683,13 +10442,13 @@ MonoBehaviour: m_OverrideInteractorLineOrigin: 1 m_LineOriginTransform: {fileID: 0} m_LineOriginOffset: 0 ---- !u!120 &1701227372 +--- !u!120 &1423342055 LineRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1701227369} + m_GameObject: {fileID: 1423342052} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -10794,13 +10553,13 @@ LineRenderer: generateLightingData: 0 m_UseWorldSpace: 1 m_Loop: 0 ---- !u!114 &1701227373 +--- !u!114 &1423342056 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1701227369} + m_GameObject: {fileID: 1423342052} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} @@ -10810,7 +10569,7 @@ MonoBehaviour: m_EnableInputTracking: 1 m_EnableInputActions: 0 m_ModelPrefab: {fileID: 0} - m_ModelParent: {fileID: 733504865} + m_ModelParent: {fileID: 506692965} m_Model: {fileID: 0} m_AnimateModel: 0 m_ModelSelectTransition: @@ -10826,7 +10585,7 @@ MonoBehaviour: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -2024308242397127297, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -2024308242397127297, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_RotationAction: m_UseReference: 1 m_Action: @@ -10838,7 +10597,7 @@ MonoBehaviour: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: 8248158260566104461, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: 8248158260566104461, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_IsTrackedAction: m_UseReference: 0 m_Action: @@ -10874,7 +10633,7 @@ MonoBehaviour: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -4084014799535200556, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -4084014799535200556, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_SelectActionValue: m_UseReference: 1 m_Action: @@ -10886,7 +10645,7 @@ MonoBehaviour: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -7039868187661461836, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -7039868187661461836, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_ActivateAction: m_UseReference: 1 m_Action: @@ -10898,7 +10657,7 @@ MonoBehaviour: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -5982496924579745919, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -5982496924579745919, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_ActivateActionValue: m_UseReference: 1 m_Action: @@ -10910,7 +10669,7 @@ MonoBehaviour: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -5393738492722007444, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -5393738492722007444, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_UIPressAction: m_UseReference: 1 m_Action: @@ -10922,7 +10681,7 @@ MonoBehaviour: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -6395602842196007441, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -6395602842196007441, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_UIPressActionValue: m_UseReference: 0 m_Action: @@ -10958,7 +10717,7 @@ MonoBehaviour: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -8785819595477538065, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -8785819595477538065, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_RotateAnchorAction: m_UseReference: 1 m_Action: @@ -10970,7 +10729,7 @@ MonoBehaviour: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -7363382999065477798, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -7363382999065477798, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_DirectionalAnchorRotationAction: m_UseReference: 0 m_Action: @@ -10994,7 +10753,7 @@ MonoBehaviour: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: 7779212132400271959, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: 7779212132400271959, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_ScaleToggleAction: m_UseReference: 0 m_Action: @@ -11020,24 +10779,24 @@ MonoBehaviour: m_Flags: 0 m_Reference: {fileID: 0} m_ButtonPressPoint: 0.5 ---- !u!114 &1701227374 +--- !u!114 &1423342057 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1701227369} + m_GameObject: {fileID: 1423342052} m_Enabled: 0 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} m_Name: m_EditorClassIdentifier: - m_InteractionManager: {fileID: 1457759947} + m_InteractionManager: {fileID: 2089871579} m_InteractionLayerMask: serializedVersion: 2 m_Bits: 256 m_InteractionLayers: - m_Bits: 256 + m_Bits: 2 m_AttachTransform: {fileID: 0} m_KeepSelectedTargetValid: 0 m_DisableVisualsWhenBlockedInGroup: 1 @@ -11108,7 +10867,7 @@ MonoBehaviour: m_LineType: 1 m_BlendVisualLinePoints: 1 m_MaxRaycastDistance: 30 - m_RayOriginTransform: {fileID: 1679561858} + m_RayOriginTransform: {fileID: 1742313800} m_ReferenceFrame: {fileID: 0} m_Velocity: 10 m_Acceleration: 9.8 @@ -11150,7 +10909,7 @@ MonoBehaviour: m_OccludeARHitsWith3DObjects: 0 m_OccludeARHitsWith2DObjects: 0 m_ScaleMode: 0 ---- !u!1 &1731060432 +--- !u!1 &1423653692 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -11158,83 +10917,45 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1731060433} - - component: {fileID: 1731060435} - - component: {fileID: 1731060434} - m_Layer: 8 - m_Name: Plane + - component: {fileID: 1423653693} + - component: {fileID: 1423653694} + m_Layer: 0 + m_Name: Collider (5) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1731060433 +--- !u!4 &1423653693 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1731060432} - m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_GameObject: {fileID: 1423653692} + m_LocalRotation: {x: -0.27059805, y: -0.27059805, z: 0.6532815, w: 0.6532815} + m_LocalPosition: {x: 0.177, y: 0, z: -0.171} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 757363300} - m_Father: {fileID: 1268751234} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} ---- !u!23 &1731060434 -MeshRenderer: + m_Children: [] + m_Father: {fileID: 660021081} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: -45, z: 90} +--- !u!136 &1423653694 +CapsuleCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1731060432} + m_GameObject: {fileID: 1423653692} + m_Material: {fileID: 0} + m_IsTrigger: 0 m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 5984489a6c8753743953c8d64d3265fb, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1731060435 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1731060432} - m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1743725475 + m_Radius: 0.02 + m_Height: 0.2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &1430860602 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -11242,32 +10963,31 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1743725476} + - component: {fileID: 1430860603} m_Layer: 0 - m_Name: Station Throw Ball + m_Name: Middle_0_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1743725476 +--- !u!4 &1430860603 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1743725475} - m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} - m_LocalPosition: {x: 1.5, y: 0, z: -5.5} + m_GameObject: {fileID: 1430860602} + m_LocalRotation: {x: 0.037149172, y: -0.0391672, z: -0.020477412, w: 0.9983319} + m_LocalPosition: {x: -0.062340543, y: -0.00000025370625, z: -0.00000015303492} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 660021080} - - {fileID: 2074732593} - m_Father: {fileID: 0} - m_RootOrder: 9 - m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} ---- !u!1 &1745294526 + - {fileID: 1078070624} + m_Father: {fileID: 1675801262} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1466462399 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -11275,96 +10995,79 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1745294527} - - component: {fileID: 1745294530} - - component: {fileID: 1745294529} - - component: {fileID: 1745294528} + - component: {fileID: 1466462400} m_Layer: 0 - m_Name: SnapPoint + m_Name: Little_0_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1745294527 +--- !u!4 &1466462400 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1745294526} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_GameObject: {fileID: 1466462399} + m_LocalRotation: {x: -0.018601296, y: 0.022547437, z: -0.058639184, w: 0.99785125} + m_LocalPosition: {x: -0.056403197, y: -0.00000059507784, z: 0.0000003004074} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 221845637} + m_Children: + - {fileID: 679583488} + m_Father: {fileID: 1289966973} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1745294528 -MeshRenderer: +--- !u!1 &1471223337 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1745294526} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 34211d2175b5963469d4deb504fbcbaf, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1745294529 -MeshFilter: + serializedVersion: 6 + m_Component: + - component: {fileID: 1471223338} + - component: {fileID: 1471223339} + m_Layer: 0 + m_Name: TransformerInside + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1471223338 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1745294526} - m_Mesh: {fileID: 1390574009} ---- !u!114 &1745294530 + m_GameObject: {fileID: 1471223337} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: 1.2, z: 1.125} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1192304054} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1471223339 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1745294526} + m_GameObject: {fileID: 1471223337} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 88ea78c93b844cc1b7f98cca70e8679c, type: 3} + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: - parent: {fileID: 221845638} ---- !u!1 &1756511963 + serializedGuid: + serializedGuid: 5ff70f47eac84445b28f57b8bc54153e + uniqueName: TransformerInside + tags: [] +--- !u!1 &1481350549 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -11372,37 +11075,31 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1756511964} + - component: {fileID: 1481350550} m_Layer: 0 - m_Name: Station Slice + m_Name: Ring_2_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1756511964 +--- !u!4 &1481350550 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1756511963} - m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} - m_LocalPosition: {x: -1, y: 0, z: 2.5} + m_GameObject: {fileID: 1481350549} + m_LocalRotation: {x: -0.0013731687, y: -0.0005792431, z: -0.08538537, w: 0.9963469} + m_LocalPosition: {x: -0.028493328, y: -0.00000044822693, z: -0.0000003170967} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 503181885} - - {fileID: 232339300} - - {fileID: 1216574281} - - {fileID: 1978455791} - - {fileID: 587381659} - - {fileID: 102893252} - - {fileID: 1204090591} - m_Father: {fileID: 0} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} ---- !u!1 &1757158343 + - {fileID: 2131842499} + m_Father: {fileID: 995671520} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1494241463 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -11410,30 +11107,31 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1757158344} + - component: {fileID: 1494241464} m_Layer: 0 - m_Name: Ring_Tip_Left + m_Name: Thumb_1_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1757158344 +--- !u!4 &1494241464 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1757158343} - m_LocalRotation: {x: 0.000000011175867, y: -0.000000022351747, z: -0.00000020395967, w: 1} - m_LocalPosition: {x: -0.020554436, y: 0.000000114440915, z: -0.00000007867813} + m_GameObject: {fileID: 1494241463} + m_LocalRotation: {x: 0.0000025456518, y: 0.0000026570444, z: 0.10506754, w: 0.9944651} + m_LocalPosition: {x: -0.03307885, y: 0.000000052452087, z: -0.00000030398368} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1049921004} + m_Children: + - {fileID: 668594702} + m_Father: {fileID: 595536807} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1769588067 +--- !u!1 &1507460096 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -11441,218 +11139,198 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1769588068} - - component: {fileID: 1769588069} + - component: {fileID: 1507460097} + - component: {fileID: 1507460098} m_Layer: 0 - m_Name: Collider + m_Name: Light m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1769588068 +--- !u!4 &1507460097 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1769588067} - m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0.244} + m_GameObject: {fileID: 1507460096} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: 1.511, z: 1.142} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 660021081} + m_Father: {fileID: 535679137} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} ---- !u!136 &1769588069 -CapsuleCollider: + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!108 &1507460098 +Light: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1769588067} - m_Material: {fileID: 0} - m_IsTrigger: 0 + m_GameObject: {fileID: 1507460096} m_Enabled: 1 - m_Radius: 0.02 - m_Height: 0.2 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} ---- !u!1001 &1785665711 -PrefabInstance: + serializedVersion: 10 + m_Type: 2 + m_Shape: 0 + m_Color: {r: 1, g: 0, b: 1, a: 1} + m_Intensity: 4 + m_Range: 1 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!1 &1521703296 +GameObject: m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 2121825122} - m_Modifications: - - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - propertyPath: m_LocalPosition.x - value: 0.049998768 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - propertyPath: m_LocalPosition.y - value: 1.7 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - propertyPath: m_LocalRotation.y - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -7511558181221131132, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 3b8d4fff00195aa4792d649902e68bcd, type: 2} - - target: {fileID: -7511558181221131132, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - propertyPath: m_Materials.Array.data[1] - value: - objectReference: {fileID: 2100000, guid: c434c7521ce308c46bde59286f6b7998, type: 2} - - target: {fileID: 919132149155446097, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - propertyPath: m_Name - value: TouchPanel - objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - propertyPath: m_StaticEditorFlags - value: 4294967295 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} ---- !u!1 &1785665712 stripped + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1521703297} + m_Layer: 8 + m_Name: Anchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1521703297 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1521703296} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.01, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1222594156} + m_Father: {fileID: 815556419} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1525491573 GameObject: - m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - m_PrefabInstance: {fileID: 1785665711} + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} ---- !u!114 &1785665713 -MonoBehaviour: + serializedVersion: 6 + m_Component: + - component: {fileID: 1525491574} + - component: {fileID: 1525491575} + - component: {fileID: 1525491579} + - component: {fileID: 1525491578} + - component: {fileID: 1525491577} + - component: {fileID: 1525491576} + m_Layer: 0 + m_Name: Snap Zone Stairs (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1525491574 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1785665712} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 573907d717ac4934eb429f2f5978a132, type: 3} - m_Name: - m_EditorClassIdentifier: - lockOnParentObjectLock: 1 - touchStarted: - m_PersistentCalls: - m_Calls: [] - touchEnded: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &1785665714 + m_GameObject: {fileID: 1525491573} + m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0.8, z: 2.2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 790520236} + m_Father: {fileID: 33704422} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!114 &1525491575 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1785665712} + m_GameObject: {fileID: 1525491573} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d1bcb89c5e4474247b7923fe1388ad1a, type: 3} + m_Script: {fileID: 11500000, guid: dc6efdd45e6a00744aaf4c68264d6d7c, type: 3} m_Name: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} - m_Colliders: [] m_InteractionLayerMask: serializedVersion: 2 m_Bits: 4294967295 m_InteractionLayers: m_Bits: 1 - m_DistanceCalculationMode: 1 - m_SelectMode: 0 - m_FocusMode: 1 - m_CustomReticle: {fileID: 0} - m_AllowGazeInteraction: 0 - m_AllowGazeSelect: 0 - m_OverrideGazeTimeToSelect: 0 - m_GazeTimeToSelect: 0.5 - m_OverrideTimeToAutoDeselectGaze: 0 - m_TimeToAutoDeselectGaze: 3 - m_AllowGazeAssistance: 0 - m_FirstHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_LastHoverExited: - m_PersistentCalls: - m_Calls: [] + m_AttachTransform: {fileID: 790520236} + m_KeepSelectedTargetValid: 1 + m_DisableVisualsWhenBlockedInGroup: 1 + m_StartingSelectedInteractable: {fileID: 0} + m_StartingTargetFilter: {fileID: 0} m_HoverEntered: m_PersistentCalls: m_Calls: [] m_HoverExited: m_PersistentCalls: m_Calls: [] - m_FirstSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_LastSelectExited: - m_PersistentCalls: - m_Calls: [] m_SelectEntered: m_PersistentCalls: m_Calls: [] m_SelectExited: m_PersistentCalls: m_Calls: [] - m_FirstFocusEntered: - m_PersistentCalls: - m_Calls: [] - m_LastFocusExited: - m_PersistentCalls: - m_Calls: [] - m_FocusEntered: - m_PersistentCalls: - m_Calls: [] - m_FocusExited: - m_PersistentCalls: - m_Calls: [] - m_Activated: - m_PersistentCalls: - m_Calls: [] - m_Deactivated: - m_PersistentCalls: - m_Calls: [] m_StartingHoverFilters: [] m_StartingSelectFilters: [] - m_StartingInteractionStrengthFilters: [] - m_OnFirstHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_OnLastHoverExited: - m_PersistentCalls: - m_Calls: [] m_OnHoverEntered: m_PersistentCalls: m_Calls: [] @@ -11665,132 +11343,243 @@ MonoBehaviour: m_OnSelectExited: m_PersistentCalls: m_Calls: [] - m_OnSelectCanceled: - m_PersistentCalls: - m_Calls: [] - m_OnActivate: + m_ShowInteractableHoverMeshes: 1 + m_InteractableHoverMeshMaterial: {fileID: 0} + m_InteractableCantHoverMeshMaterial: {fileID: 0} + m_SocketActive: 1 + m_InteractableHoverScale: 1 + m_RecycleDelayTime: 1 + m_HoverSocketSnapping: 0 + m_SocketSnappingRadius: 0.1 + m_SocketScaleMode: 0 + m_FixedScale: {x: 1, y: 1, z: 1} + m_TargetBoundsSize: {x: 1, y: 1, z: 1} + shownHighlightObject: {fileID: 919132149155446097, guid: 3cd7c532cc585b54795fadfe1b32fc53, type: 3} + ShowHighlightInEditor: 1 + highlightMeshMaterial: {fileID: 2100000, guid: 34211d2175b5963469d4deb504fbcbaf, type: 2} + validationMaterial: {fileID: 2100000, guid: c6c888b079480654fbf337e7fe50b405, type: 2} + invalidMaterial: {fileID: 2100000, guid: 69e2b61a70de44f48909a564a7cf9c62, type: 2} + previewMesh: {fileID: 862649805} +--- !u!65 &1525491576 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1525491573} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.4, y: 0.4, z: 0.2} + m_Center: {x: 0, y: 0, z: -0.1} +--- !u!114 &1525491577 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1525491573} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 557aaed036734781b129d67ec56c9366, type: 3} + m_Name: + m_EditorClassIdentifier: + acceptedProcessSceneObjects: + - {fileID: 587381668} + - {fileID: 102893243} +--- !u!114 &1525491578 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1525491573} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eb7be990fff0a2142a874601356b26df, type: 3} + m_Name: + m_EditorClassIdentifier: + lockOnParentObjectLock: 1 + objectAttached: m_PersistentCalls: m_Calls: [] - m_OnDeactivate: + objectDetached: m_PersistentCalls: m_Calls: [] - m_AttachTransform: {fileID: 0} - m_SecondaryAttachTransform: {fileID: 0} - m_UseDynamicAttach: 0 - m_MatchAttachPosition: 1 - m_MatchAttachRotation: 1 - m_SnapToColliderVolume: 1 - m_ReinitializeDynamicAttachEverySingleGrab: 1 - m_AttachEaseInTime: 0.15 - m_MovementType: 1 - m_VelocityDamping: 1 - m_VelocityScale: 1 - m_AngularVelocityDamping: 1 - m_AngularVelocityScale: 1 - m_TrackPosition: 1 - m_SmoothPosition: 0 - m_SmoothPositionAmount: 5 - m_TightenPosition: 0.5 - m_TrackRotation: 1 - m_SmoothRotation: 0 - m_SmoothRotationAmount: 5 - m_TightenRotation: 0.5 - m_TrackScale: 1 - m_SmoothScale: 0 - m_SmoothScaleAmount: 8 - m_TightenScale: 0.1 - m_ThrowOnDetach: 1 - m_ThrowSmoothingDuration: 0.25 - m_ThrowSmoothingCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - m_ThrowVelocityScale: 1.5 - m_ThrowAngularVelocityScale: 1 - m_ForceGravityOnDetach: 0 - m_RetainTransformParent: 1 - m_AttachPointCompatibilityMode: 0 - m_StartingSingleGrabTransformers: [] - m_StartingMultipleGrabTransformers: [] - m_AddDefaultGrabTransformers: 1 - isTouchable: 1 - isGrabbable: 0 - isUsable: 0 ---- !u!54 &1785665715 -Rigidbody: + lockOnUnsnap: 1 +--- !u!114 &1525491579 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1525491573} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} + m_Name: + m_EditorClassIdentifier: + serializedGuid: + serializedGuid: 6e662d7aa29798489718d4a6a25ea1d9 + uniqueName: Sliced Cube (1)_SnapZone_1 + tags: [] +--- !u!1 &1527860101 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1527860102} + m_Layer: 0 + m_Name: Station Transform + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1527860102 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1527860101} + m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071068} + m_LocalPosition: {x: -3, y: 0, z: 6} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 815556419} + - {fileID: 597715543} + - {fileID: 1192304054} + - {fileID: 632093760} + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0} +--- !u!1 &1583804100 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1785665712} - serializedVersion: 2 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 - m_UseGravity: 1 - m_IsKinematic: 1 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 ---- !u!114 &1785665716 + serializedVersion: 6 + m_Component: + - component: {fileID: 1583804101} + - component: {fileID: 1583804102} + m_Layer: 0 + m_Name: TransformerOutside + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1583804101 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1583804100} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.2, z: -0.25} + m_LocalScale: {x: 0.4, y: 0.4, z: 0.4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1192304054} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1583804102 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1785665712} + m_GameObject: {fileID: 1583804100} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: - uniqueName: TouchPanel_1 + serializedGuid: + serializedGuid: deaeb680dc4a6547b8ec1cd1bd3c03ae + uniqueName: TransformerOutside tags: [] ---- !u!65 &1785665720 -BoxCollider: +--- !u!1 &1634918258 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1785665712} - m_Material: {fileID: 0} - m_IsTrigger: 0 + serializedVersion: 6 + m_Component: + - component: {fileID: 1634918261} + - component: {fileID: 1634918260} + - component: {fileID: 1634918259} + m_Layer: 0 + m_Name: XR_Setup_Action_Based_Hands + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1634918259 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1634918258} m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 0.20000012, y: 0.2121321, z: 0.12727931} - m_Center: {x: 0.00000023841858, y: 0.03535535, z: -0.06363918} ---- !u!114 &1785665721 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eb84184823a056249bfba5107e766ec3, type: 3} + m_Name: + m_EditorClassIdentifier: + layerSet: 2 + interactors: + - {fileID: 1423342057} + - {fileID: 496138947} +--- !u!114 &1634918260 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1785665712} + m_GameObject: {fileID: 1634918258} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3292d68f2db97a8418ca72f5b8bb5b69, type: 3} + m_Script: {fileID: 11500000, guid: f391ac734d94ea34697b6cde3269f11a, type: 3} m_Name: m_EditorClassIdentifier: - defaultColor: - serializedVersion: 2 - rgba: 4294918375 - touchingColor: - serializedVersion: 2 - rgba: 4291359096 - materialIndex: 1 - materialColorProperty: _EmissionColor ---- !u!1 &1797391502 + serializedGuid: + serializedGuid: 1a980a02ca1df7479fbe908b857b9aa3 + uniqueName: User + tags: [] + head: {fileID: 2008584333} + leftHand: {fileID: 440165965} + rightHand: {fileID: 1729154661} +--- !u!4 &1634918261 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1634918258} + m_LocalRotation: {x: -0, y: -0.8502079, z: -0, w: 0.52644706} + m_LocalPosition: {x: 0.01, y: 0, z: 7.39} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 361400739} + - {fileID: 2089871580} + - {fileID: 846924387} + - {fileID: 362215160} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: -116.469, z: 0} +--- !u!1 &1637849899 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -11798,30 +11587,62 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1797391503} + - component: {fileID: 1637849900} m_Layer: 0 - m_Name: AttachTransform + m_Name: Sphere m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1797391503 +--- !u!4 &1637849900 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1797391502} - m_LocalRotation: {x: 0.56707263, y: -0.5567243, z: -0.42857793, w: 0.42989275} - m_LocalPosition: {x: -0.09850459, y: -0.018400598, z: -0.0062015653} + m_GameObject: {fileID: 1637849899} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1.2, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1202705125} + m_Father: {fileID: 632093760} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1675801261 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1675801262} + m_Layer: 0 + m_Name: Middle_Palm_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1675801262 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1675801261} + m_LocalRotation: {x: 0.99872494, y: -0.046419356, z: -0.015558949, w: -0.012318821} + m_LocalPosition: {x: -0.05391815, y: 0.0050031445, z: 0.0017454529} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1430860603} + m_Father: {fileID: 105739408} m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0.594, y: -105.251, z: -90.602} ---- !u!1 &1809129952 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1714243699 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -11829,65 +11650,97 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1809129953} - - component: {fileID: 1809129956} - - component: {fileID: 1809129955} - - component: {fileID: 1809129954} + - component: {fileID: 1714243700} m_Layer: 0 - m_Name: Left Base Controller + m_Name: Middle_2_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1714243700 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1714243699} + m_LocalRotation: {x: 0.007229151, y: 0.004674483, z: -0.10485168, w: 0.9944506} + m_LocalPosition: {x: -0.02966484, y: -0.00000024318695, z: 0.000000114440915} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 361187391} + m_Father: {fileID: 1836407205} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1729154660 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1729154661} + - component: {fileID: 1729154664} + - component: {fileID: 1729154663} + - component: {fileID: 1729154662} + m_Layer: 0 + m_Name: Right Base Controller m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1809129953 +--- !u!4 &1729154661 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1809129952} + m_GameObject: {fileID: 1729154660} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 733504865} - m_Father: {fileID: 1401794268} + - {fileID: 820468471} + m_Father: {fileID: 697578261} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!135 &1809129954 +--- !u!135 &1729154662 SphereCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1809129952} + m_GameObject: {fileID: 1729154660} m_Material: {fileID: 0} m_IsTrigger: 1 m_Enabled: 1 serializedVersion: 2 m_Radius: 0.05 m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &1809129955 +--- !u!114 &1729154663 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1809129952} + m_GameObject: {fileID: 1729154660} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: b7231d59cedbff745ae8517a2b954506, type: 3} m_Name: m_EditorClassIdentifier: - m_InteractionManager: {fileID: 1457759947} + m_InteractionManager: {fileID: 2089871579} m_InteractionLayerMask: serializedVersion: 2 m_Bits: 1 m_InteractionLayers: m_Bits: 1 - m_AttachTransform: {fileID: 1797391503} + m_AttachTransform: {fileID: 2040506300} m_KeepSelectedTargetValid: 1 m_DisableVisualsWhenBlockedInGroup: 1 m_StartingSelectedInteractable: {fileID: 0} @@ -11960,13 +11813,13 @@ MonoBehaviour: m_Bits: 1 m_PhysicsTriggerInteraction: 1 precisionGrab: 1 ---- !u!114 &1809129956 +--- !u!114 &1729154664 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1809129952} + m_GameObject: {fileID: 1729154660} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} @@ -11976,42 +11829,42 @@ MonoBehaviour: m_EnableInputTracking: 1 m_EnableInputActions: 1 m_ModelPrefab: {fileID: 0} - m_ModelParent: {fileID: 733504865} + m_ModelParent: {fileID: 820468471} m_Model: {fileID: 0} m_AnimateModel: 0 - m_ModelSelectTransition: Grab - m_ModelDeSelectTransition: Grab + m_ModelSelectTransition: + m_ModelDeSelectTransition: m_PositionAction: m_UseReference: 1 m_Action: - m_Name: Position + m_Name: m_Type: 0 m_ExpectedControlType: - m_Id: 8b170a9b-132e-486d-947e-6a244d4362ea + m_Id: m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -2024308242397127297, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: -3326005586356538449, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_RotationAction: m_UseReference: 1 m_Action: - m_Name: Rotation + m_Name: m_Type: 0 m_ExpectedControlType: - m_Id: 080819c2-8547-4beb-8522-e6356be16fb1 + m_Id: m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: 8248158260566104461, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: 5101698808175986029, guid: de2411ef647d9f24d981120efb63e621, type: 3} m_IsTrackedAction: m_UseReference: 0 m_Action: m_Name: Is Tracked m_Type: 1 m_ExpectedControlType: - m_Id: + m_Id: 2f5ad2a7-d128-4be6-aa7b-324a04fda92e m_Processors: m_Interactions: m_SingletonActionBindings: [] @@ -12023,360 +11876,170 @@ MonoBehaviour: m_Name: Tracking State m_Type: 0 m_ExpectedControlType: - m_Id: bff3ff54-e432-4205-8a89-770a756a58f8 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_SelectAction: - m_UseReference: 1 - m_Action: - m_Name: Select - m_Type: 0 - m_ExpectedControlType: - m_Id: 8e000d1c-13a4-4cc0-ad37-f2e125874399 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -6131295136447488360, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_SelectActionValue: - m_UseReference: 1 - m_Action: - m_Name: Select Action Value - m_Type: 0 - m_ExpectedControlType: - m_Id: f93fa1a2-101a-4938-b3bf-d4156f43e4e4 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -7039868187661461836, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ActivateAction: - m_UseReference: 1 - m_Action: - m_Name: Activate - m_Type: 0 - m_ExpectedControlType: - m_Id: 3995f9f4-6aa7-409a-80d2-5f7ea1464fde - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -5982496924579745919, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ActivateActionValue: - m_UseReference: 1 - m_Action: - m_Name: Activate Action Value - m_Type: 0 - m_ExpectedControlType: - m_Id: 0dee0d87-a49c-4317-9281-019ed020b1ce - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -5393738492722007444, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressAction: - m_UseReference: 1 - m_Action: - m_Name: UI Press - m_Type: 0 - m_ExpectedControlType: - m_Id: db89d01c-df6f-4954-b868-103dd5bdb514 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -6395602842196007441, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressActionValue: - m_UseReference: 0 - m_Action: - m_Name: UI Press Action Value - m_Type: 0 - m_ExpectedControlType: - m_Id: c4f9d43a-7eb7-410a-a5ee-80994233e6e4 + m_Id: b71180c0-70dd-45ad-9c7f-85180a861e1c m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 m_Reference: {fileID: 0} - m_UIScrollAction: - m_UseReference: 0 + m_SelectAction: + m_UseReference: 1 m_Action: - m_Name: UI Scroll + m_Name: m_Type: 0 - m_ExpectedControlType: Vector2 + m_ExpectedControlType: m_Id: m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: 0} - m_HapticDeviceAction: + m_Reference: {fileID: 187161793506945269, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_SelectActionValue: m_UseReference: 1 m_Action: - m_Name: Haptic Device + m_Name: Select Action Value m_Type: 0 m_ExpectedControlType: - m_Id: 3e09b626-c80d-40ec-9592-eb3fe89c2038 + m_Id: 183beb27-b26f-4061-8868-236672560d69 m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -8785819595477538065, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RotateAnchorAction: + m_Reference: {fileID: 4766120400929042988, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_ActivateAction: m_UseReference: 1 m_Action: - m_Name: Rotate Anchor + m_Name: m_Type: 0 m_ExpectedControlType: - m_Id: 3dca8766-e652-4e78-8406-420aa73ba338 + m_Id: m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -7363382999065477798, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_DirectionalAnchorRotationAction: - m_UseReference: 0 + m_Reference: {fileID: 83097790271614945, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_ActivateActionValue: + m_UseReference: 1 m_Action: - m_Name: + m_Name: Activate Action Value m_Type: 0 m_ExpectedControlType: - m_Id: + m_Id: 657bd760-06f7-4d83-80e9-76b85139bb0d m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: 0} - m_TranslateAnchorAction: + m_Reference: {fileID: -3285721481334498719, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_UIPressAction: m_UseReference: 1 m_Action: - m_Name: Translate Anchor + m_Name: m_Type: 0 m_ExpectedControlType: - m_Id: e873605e-6a95-4389-8fbe-39069340ba92 + m_Id: m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: 7779212132400271959, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ScaleToggleAction: + m_Reference: {fileID: 3279264004350380116, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_UIPressActionValue: m_UseReference: 0 m_Action: - m_Name: Scale Toggle - m_Type: 1 + m_Name: UI Press Action Value + m_Type: 0 m_ExpectedControlType: - m_Id: 54622687-cf88-41cc-8b5a-2cfd522daf3a + m_Id: bcba2e34-25ae-4ecc-bf14-8997a78e930e m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 m_Reference: {fileID: 0} - m_ScaleDeltaAction: + m_UIScrollAction: m_UseReference: 0 m_Action: - m_Name: Scale Delta + m_Name: UI Scroll m_Type: 0 m_ExpectedControlType: Vector2 - m_Id: 4e22ab00-2340-424c-80a9-858890f88c2d + m_Id: 3f81201c-5984-4321-b2d0-7d8ce8eccc75 m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 m_Reference: {fileID: 0} - m_ButtonPressPoint: 0.5 ---- !u!1 &1815494800 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1815494806} - - component: {fileID: 1815494805} - - component: {fileID: 1815494804} - - component: {fileID: 1815494803} - - component: {fileID: 1815494802} - - component: {fileID: 1815494801} - m_Layer: 0 - m_Name: PROCESS_CONTROLLER - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1815494801 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1815494800} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 73d6fe59e43872c428b2ac1a9fd85e28, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1815494802 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1815494800} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 05625e2da85e44bd82228234d8676e45, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1815494803 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1815494800} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Actions: {fileID: -944628639613478452, guid: 6b02a44c110911f489b56953cced3f56, type: 3} - m_NotificationBehavior: 3 - m_UIInputModule: {fileID: 0} - m_DeviceLostEvent: - m_PersistentCalls: - m_Calls: [] - m_DeviceRegainedEvent: - m_PersistentCalls: - m_Calls: [] - m_ControlsChangedEvent: - m_PersistentCalls: - m_Calls: [] - m_ActionEvents: [] - m_NeverAutoSwitchControlSchemes: 0 - m_DefaultControlScheme: - m_DefaultActionMap: Default - m_SplitScreenIndex: -1 - m_Camera: {fileID: 0} ---- !u!114 &1815494804 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1815494800} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bff89a8a00803ab45922cc05aaa080b7, type: 3} - m_Name: - m_EditorClassIdentifier: - processControllerQualifiedName: VRBuilder.UX.StandardProcessController, VRBuilder.Core, - Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - autoStartProcess: 1 - useCustomPrefab: 0 - customPrefab: {fileID: 0} ---- !u!114 &1815494805 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1815494800} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9e218973d8ce7b141a938229d9877d26, type: 3} - m_Name: - m_EditorClassIdentifier: - lockSceneObjectsOnSceneStart: 1 ---- !u!4 &1815494806 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1815494800} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1816767293 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1816767294} - - component: {fileID: 1816767295} - m_Layer: 0 - m_Name: Collider (3) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1816767294 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1816767293} - m_LocalRotation: {x: 0.5, y: 0.5, z: 0.5, w: 0.5} - m_LocalPosition: {x: 0.245, y: 0, z: -0.0040003136} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 660021081} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 90, z: 90} ---- !u!136 &1816767295 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1816767293} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - m_Radius: 0.02 - m_Height: 0.2 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &1831340543 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} - m_PrefabInstance: {fileID: 1006305323} - m_PrefabAsset: {fileID: 0} ---- !u!4 &1831340544 stripped -Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} - m_PrefabInstance: {fileID: 1006305323} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1831340547 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1831340543} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: Shield - tags: [] ---- !u!1 &1839515082 + m_HapticDeviceAction: + m_UseReference: 1 + m_Action: + m_Name: Haptic Device + m_Type: 0 + m_ExpectedControlType: + m_Id: 59ea1b94-e9f8-4049-ab97-5920b11143a5 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -8222252007134549311, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_RotateAnchorAction: + m_UseReference: 1 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -5913262927076077117, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_DirectionalAnchorRotationAction: + m_UseReference: 0 + m_Action: + m_Name: Directional Anchor Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: c3ecb458-1b33-4991-8cb0-8cc06a515ea4 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_TranslateAnchorAction: + m_UseReference: 1 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 875253871413052681, guid: de2411ef647d9f24d981120efb63e621, type: 3} + m_ScaleToggleAction: + m_UseReference: 0 + m_Action: + m_Name: Scale Toggle + m_Type: 1 + m_ExpectedControlType: + m_Id: 8ca72b5b-c2db-4bb5-a0ed-3936b2f58721 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ScaleDeltaAction: + m_UseReference: 0 + m_Action: + m_Name: Scale Delta + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 98b33f76-5007-42f1-82ed-b035914b715c + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ButtonPressPoint: 0.5 +--- !u!1 &1731060432 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -12384,230 +12047,83 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1839515083} - - component: {fileID: 1839515084} - m_Layer: 0 - m_Name: RightHand + - component: {fileID: 1731060433} + - component: {fileID: 1731060435} + - component: {fileID: 1731060434} + m_Layer: 8 + m_Name: Plane m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1839515083 +--- !u!4 &1731060433 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1839515082} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 1731060432} + m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1390367067} - - {fileID: 2115926223} - - {fileID: 109444418} - m_Father: {fileID: 1389664210} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1839515084 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1839515082} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 41cc12ba1114e4f46929730a9389cb74, type: 3} - m_Name: - m_EditorClassIdentifier: - baseController: {fileID: 1390367066} - teleportController: {fileID: 2115926221} - uiController: {fileID: 109444417} - teleportModeActivate: {fileID: -8061240218431744966, guid: c348712bda248c246b8c49b3db54643f, type: 3} - teleportModeCancel: {fileID: 2307464322626738743, guid: c348712bda248c246b8c49b3db54643f, type: 3} - uiModeActivate: {fileID: -4794670585942407507, guid: c348712bda248c246b8c49b3db54643f, type: 3} - turn: {fileID: -6493913391331992944, guid: c348712bda248c246b8c49b3db54643f, type: 3} - move: {fileID: -8198699208435500284, guid: c348712bda248c246b8c49b3db54643f, type: 3} - translateAnchor: {fileID: 875253871413052681, guid: c348712bda248c246b8c49b3db54643f, type: 3} - rotateAnchor: {fileID: -5913262927076077117, guid: c348712bda248c246b8c49b3db54643f, type: 3} - selectState: - enabled: 0 - m_ID: 1 - onEnter: - m_PersistentCalls: - m_Calls: [] - onUpdate: - m_PersistentCalls: - m_Calls: [] - onExit: - m_PersistentCalls: - m_Calls: [] - teleportState: - enabled: 0 - m_ID: 2 - onEnter: - m_PersistentCalls: - m_Calls: [] - onUpdate: - m_PersistentCalls: - m_Calls: [] - onExit: - m_PersistentCalls: - m_Calls: [] - interactState: - enabled: 0 - m_ID: 3 - onEnter: - m_PersistentCalls: - m_Calls: [] - onUpdate: - m_PersistentCalls: - m_Calls: [] - onExit: - m_PersistentCalls: - m_Calls: [] - uiState: - enabled: 0 - m_ID: 4 - onEnter: - m_PersistentCalls: - m_Calls: [] - onUpdate: - m_PersistentCalls: - m_Calls: [] - onExit: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &1844665380 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1844665381} - m_Layer: 0 - m_Name: Middle_2_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1844665381 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1844665380} - m_LocalRotation: {x: 0.007229151, y: 0.004674483, z: -0.10485168, w: 0.9944506} - m_LocalPosition: {x: -0.02966484, y: -0.00000024318695, z: 0.000000114440915} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 890304052} - m_Father: {fileID: 1633826910} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1854500746 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1854500747} - - component: {fileID: 1854500748} - m_Layer: 0 - m_Name: ShieldLight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1854500747 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1854500746} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.4, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1831340544} + - {fileID: 757363300} + m_Father: {fileID: 1268751234} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!108 &1854500748 -Light: + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!23 &1731060434 +MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1854500746} + m_GameObject: {fileID: 1731060432} m_Enabled: 1 - serializedVersion: 10 - m_Type: 2 - m_Shape: 0 - m_Color: {r: 1, g: 0, b: 1, a: 1} - m_Intensity: 2 - m_Range: 3 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 1 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 6570 - m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 - m_ShadowRadius: 0 - m_ShadowAngle: 0 ---- !u!1 &1854514983 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 5984489a6c8753743953c8d64d3265fb, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1731060435 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731060432} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1742313799 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -12615,31 +12131,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1854514984} + - component: {fileID: 1742313800} m_Layer: 0 - m_Name: Middle_1_Left + m_Name: RayOrigin m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1854514984 +--- !u!4 &1742313800 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1854514983} - m_LocalRotation: {x: 0.0013464622, y: -0.0029157132, z: -0.22192244, w: 0.9750591} - m_LocalPosition: {x: -0.039041024, y: 0.0000006005168, z: 0.00000011503696} + m_GameObject: {fileID: 1742313799} + m_LocalRotation: {x: 0.2164396, y: 0, z: 0, w: 0.97629607} + m_LocalPosition: {x: -0.0215, y: 0.0244, z: -0.0387} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 883197912} - m_Father: {fileID: 1292505773} + m_Children: [] + m_Father: {fileID: 1423342053} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1856484990 + m_LocalEulerAnglesHint: {x: 25, y: 0, z: 0} +--- !u!1 &1743725475 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -12647,31 +12162,32 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1856484991} + - component: {fileID: 1743725476} m_Layer: 0 - m_Name: Middle_Palm_Left + m_Name: Station Throw Ball m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1856484991 +--- !u!4 &1743725476 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1856484990} - m_LocalRotation: {x: 0.99872494, y: -0.046419356, z: -0.015558949, w: -0.012318821} - m_LocalPosition: {x: -0.05391815, y: 0.0050031445, z: 0.0017454529} + m_GameObject: {fileID: 1743725475} + m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalPosition: {x: 1.5, y: 0, z: -5.5} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1431980070} - m_Father: {fileID: 2053954419} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1860767443 + - {fileID: 660021080} + - {fileID: 2074732593} + m_Father: {fileID: 0} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} +--- !u!1 &1745294526 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -12679,31 +12195,96 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1860767444} + - component: {fileID: 1745294527} + - component: {fileID: 1745294530} + - component: {fileID: 1745294529} + - component: {fileID: 1745294528} m_Layer: 0 - m_Name: Ring_1_Left + m_Name: SnapPoint m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1860767444 +--- !u!4 &1745294527 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1860767443} - m_LocalRotation: {x: -0.00025817356, y: 0.00035699108, z: -0.14537643, w: 0.9893763} - m_LocalPosition: {x: -0.036576994, y: 0.00000019073485, z: 0.0000001502037} + m_GameObject: {fileID: 1745294526} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1049921004} - m_Father: {fileID: 874857669} + m_Children: [] + m_Father: {fileID: 221845637} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1880415574 +--- !u!23 &1745294528 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1745294526} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 34211d2175b5963469d4deb504fbcbaf, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1745294529 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1745294526} + m_Mesh: {fileID: 1390574009} +--- !u!114 &1745294530 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1745294526} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88ea78c93b844cc1b7f98cca70e8679c, type: 3} + m_Name: + m_EditorClassIdentifier: + parent: {fileID: 221845638} +--- !u!1 &1756511963 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -12711,31 +12292,37 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1880415575} + - component: {fileID: 1756511964} m_Layer: 0 - m_Name: Little_1_Left + m_Name: Station Slice m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1880415575 +--- !u!4 &1756511964 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1880415574} - m_LocalRotation: {x: 0.0012706812, y: -0.0023152584, z: -0.06524572, w: 0.99786574} - m_LocalPosition: {x: -0.033131722, y: 0.00000038266182, z: -0.00000061273573} + m_GameObject: {fileID: 1756511963} + m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalPosition: {x: -1, y: 0, z: 2.5} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1269771531} - m_Father: {fileID: 172305591} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1882010423 + - {fileID: 503181885} + - {fileID: 232339300} + - {fileID: 1216574281} + - {fileID: 1978455791} + - {fileID: 587381659} + - {fileID: 102893252} + - {fileID: 1204090591} + m_Father: {fileID: 0} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} +--- !u!1 &1769588067 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -12743,31 +12330,45 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1882010424} + - component: {fileID: 1769588068} + - component: {fileID: 1769588069} m_Layer: 0 - m_Name: Thumb_0_Left + m_Name: Collider m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1882010424 +--- !u!4 &1769588068 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1882010423} - m_LocalRotation: {x: -0.017132446, y: 0.023738552, z: -0.011670226, w: 0.9995033} - m_LocalPosition: {x: -0.027674861, y: -0.00000018596648, z: 0.00000015173107} + m_GameObject: {fileID: 1769588067} + m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0.244} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1697840221} - m_Father: {fileID: 1508614847} + m_Children: [] + m_Father: {fileID: 660021081} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1883760418 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} +--- !u!136 &1769588069 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769588067} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.02 + m_Height: 0.2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &1773926309 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -12775,31 +12376,104 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1883760419} - m_Layer: 8 - m_Name: Anchor + - component: {fileID: 1773926310} + - component: {fileID: 1773926311} + m_Layer: 0 + m_Name: LeftHand m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1883760419 +--- !u!4 &1773926310 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1883760418} + m_GameObject: {fileID: 1773926309} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.00000005960466, y: 0.00999999, z: -0.000000059604638} - m_LocalScale: {x: 0.99999976, y: 1, z: 0.99999976} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 375530500} - m_Father: {fileID: 2014095924} - m_RootOrder: 0 + - {fileID: 440165965} + - {fileID: 1423342053} + - {fileID: 514757337} + m_Father: {fileID: 65634329} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1884881951 +--- !u!114 &1773926311 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1773926309} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 41cc12ba1114e4f46929730a9389cb74, type: 3} + m_Name: + m_EditorClassIdentifier: + baseController: {fileID: 440165964} + teleportController: {fileID: 1423342052} + uiController: {fileID: 514757336} + teleportModeActivate: {fileID: 1263111715868034790, guid: de2411ef647d9f24d981120efb63e621, type: 3} + teleportModeCancel: {fileID: 737890489006591557, guid: de2411ef647d9f24d981120efb63e621, type: 3} + uiModeActivate: {fileID: 1201092935185683357, guid: de2411ef647d9f24d981120efb63e621, type: 3} + turn: {fileID: 1010738217276881514, guid: de2411ef647d9f24d981120efb63e621, type: 3} + move: {fileID: 6972639530819350904, guid: de2411ef647d9f24d981120efb63e621, type: 3} + translateAnchor: {fileID: 7779212132400271959, guid: de2411ef647d9f24d981120efb63e621, type: 3} + rotateAnchor: {fileID: -7363382999065477798, guid: de2411ef647d9f24d981120efb63e621, type: 3} + selectState: + enabled: 0 + m_ID: 1 + onEnter: + m_PersistentCalls: + m_Calls: [] + onUpdate: + m_PersistentCalls: + m_Calls: [] + onExit: + m_PersistentCalls: + m_Calls: [] + teleportState: + enabled: 0 + m_ID: 2 + onEnter: + m_PersistentCalls: + m_Calls: [] + onUpdate: + m_PersistentCalls: + m_Calls: [] + onExit: + m_PersistentCalls: + m_Calls: [] + interactState: + enabled: 0 + m_ID: 3 + onEnter: + m_PersistentCalls: + m_Calls: [] + onUpdate: + m_PersistentCalls: + m_Calls: [] + onExit: + m_PersistentCalls: + m_Calls: [] + uiState: + enabled: 0 + m_ID: 4 + onEnter: + m_PersistentCalls: + m_Calls: [] + onUpdate: + m_PersistentCalls: + m_Calls: [] + onExit: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1784977340 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -12807,132 +12481,36 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1884881952} + - component: {fileID: 1784977341} m_Layer: 0 - m_Name: Ring_Palm_Left + m_Name: Little_Palm_Left m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1884881952 +--- !u!4 &1784977341 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1884881951} - m_LocalRotation: {x: 0.99804187, y: -0.04426889, z: 0.04315787, w: 0.009497783} - m_LocalPosition: {x: -0.05238823, y: 0.0045133065, z: -0.011750946} + m_GameObject: {fileID: 1784977340} + m_LocalRotation: {x: 0.99290055, y: -0.033564012, z: 0.11202527, w: 0.02173406} + m_LocalPosition: {x: -0.048623275, y: 0.0027686262, z: -0.026522674} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1656508554} - m_Father: {fileID: 2053954419} - m_RootOrder: 3 + - {fileID: 2110589559} + m_Father: {fileID: 105739408} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1943140084 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1943140085} - - component: {fileID: 1943140087} - - component: {fileID: 1943140086} - m_Layer: 0 - m_Name: RightHand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1943140085 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1943140084} - m_LocalRotation: {x: -0.27542365, y: 0.27542365, z: 0.65126175, w: 0.65126175} - m_LocalPosition: {x: 0.0358, y: 0.0577, z: -0.1296} - m_LocalScale: {x: 0.95, y: 0.95, z: 0.95} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 961598098} - - {fileID: 1314657003} - - {fileID: 952131645} - m_Father: {fileID: 686681832} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: -45.848, y: 0, z: 90} ---- !u!114 &1943140086 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1943140084} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e241df096dff11c478f43d1b202d33af, type: 3} - m_Name: - m_EditorClassIdentifier: - selectFloat: Select - activateFloat: Activate - UIStateBool: UIEnabled - teleportStateBool: TeleportEnabled - baseController: {fileID: 0} - teleportController: {fileID: 0} - uiController: {fileID: 0} - controllerManager: {fileID: 0} ---- !u!95 &1943140087 -Animator: - serializedVersion: 5 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1943140084} - m_Enabled: 1 - m_Avatar: {fileID: 9000000, guid: 3cc1bfa741063664e8b13a63afcd062f, type: 3} - m_Controller: {fileID: 9100000, guid: 6f17d5d554bc9b742b9bf585b813330c, type: 2} - m_CullingMode: 0 - m_UpdateMode: 0 - m_ApplyRootMotion: 0 - m_LinearVelocityBlending: 0 - m_StabilizeFeet: 0 - m_WarningMessage: - m_HasTransformHierarchy: 1 - m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorStateOnDisable: 0 - m_WriteDefaultValuesOnDisable: 0 ---- !u!1 &1969415632 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 3396913584297481876, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - m_PrefabInstance: {fileID: 660021079} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1969415634 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1969415632} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: Ring - tags: [] ---- !u!1001 &1977887389 +--- !u!1001 &1785665711 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - m_TransformParent: {fileID: 2011926244} + m_TransformParent: {fileID: 2121825122} m_Modifications: - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} propertyPath: m_RootOrder @@ -12940,19 +12518,19 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} propertyPath: m_LocalPosition.x - value: 0 + value: 0.049998768 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} propertyPath: m_LocalPosition.y - value: 0.6499 + value: 1.7 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} propertyPath: m_LocalPosition.z - value: -0.95 + value: 0 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} propertyPath: m_LocalRotation.w - value: 1 + value: 0.7071068 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} propertyPath: m_LocalRotation.x @@ -12960,7 +12538,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} propertyPath: m_LocalRotation.y - value: -0 + value: 0.7071068 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} propertyPath: m_LocalRotation.z @@ -12972,7 +12550,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: -90 + value: 0 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} propertyPath: m_LocalEulerAnglesHint.z @@ -12996,31 +12574,37 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} ---- !u!1 &1977887390 stripped +--- !u!1 &1785665712 stripped GameObject: m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} - m_PrefabInstance: {fileID: 1977887389} + m_PrefabInstance: {fileID: 1785665711} m_PrefabAsset: {fileID: 0} ---- !u!65 &1977887391 -BoxCollider: +--- !u!114 &1785665713 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1977887390} - m_Material: {fileID: 0} - m_IsTrigger: 0 + m_GameObject: {fileID: 1785665712} m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 0.20000003, y: 0.2121321, z: 0.12727925} - m_Center: {x: 0, y: 0.03535535, z: -0.063639626} ---- !u!114 &1977887393 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 573907d717ac4934eb429f2f5978a132, type: 3} + m_Name: + m_EditorClassIdentifier: + lockOnParentObjectLock: 1 + touchStarted: + m_PersistentCalls: + m_Calls: [] + touchEnded: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1785665714 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1977887390} + m_GameObject: {fileID: 1785665712} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: d1bcb89c5e4474247b7923fe1388ad1a, type: 3} @@ -13169,13 +12753,13 @@ MonoBehaviour: isTouchable: 1 isGrabbable: 0 isUsable: 0 ---- !u!54 &1977887394 +--- !u!54 &1785665715 Rigidbody: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1977887390} + m_GameObject: {fileID: 1785665712} serializedVersion: 2 m_Mass: 1 m_Drag: 0 @@ -13185,254 +12769,248 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 ---- !u!114 &1977887395 +--- !u!114 &1785665716 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1977887390} + m_GameObject: {fileID: 1785665712} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: - uniqueName: TouchPanel + serializedGuid: + serializedGuid: 87dda0b1c10254438e10fb84f67942a6 + uniqueName: TouchPanel_1 tags: [] ---- !u!114 &1977887396 +--- !u!65 &1785665720 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1785665712} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.20000012, y: 0.2121321, z: 0.12727931} + m_Center: {x: 0.00000023841858, y: 0.03535535, z: -0.06363918} +--- !u!114 &1785665721 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1785665712} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3292d68f2db97a8418ca72f5b8bb5b69, type: 3} + m_Name: + m_EditorClassIdentifier: + defaultColor: + serializedVersion: 2 + rgba: 4294918375 + touchingColor: + serializedVersion: 2 + rgba: 4291359096 + materialIndex: 1 + materialColorProperty: _EmissionColor +--- !u!1 &1815494800 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1815494806} + - component: {fileID: 1815494805} + - component: {fileID: 1815494804} + - component: {fileID: 1815494803} + - component: {fileID: 1815494802} + - component: {fileID: 1815494801} + m_Layer: 0 + m_Name: PROCESS_CONTROLLER + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1815494801 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815494800} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73d6fe59e43872c428b2ac1a9fd85e28, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1815494802 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815494800} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 05625e2da85e44bd82228234d8676e45, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1815494803 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815494800} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Actions: {fileID: -944628639613478452, guid: 6b02a44c110911f489b56953cced3f56, type: 3} + m_NotificationBehavior: 3 + m_UIInputModule: {fileID: 0} + m_DeviceLostEvent: + m_PersistentCalls: + m_Calls: [] + m_DeviceRegainedEvent: + m_PersistentCalls: + m_Calls: [] + m_ControlsChangedEvent: + m_PersistentCalls: + m_Calls: [] + m_ActionEvents: [] + m_NeverAutoSwitchControlSchemes: 0 + m_DefaultControlScheme: + m_DefaultActionMap: Default + m_SplitScreenIndex: -1 + m_Camera: {fileID: 0} +--- !u!114 &1815494804 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1977887390} + m_GameObject: {fileID: 1815494800} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 573907d717ac4934eb429f2f5978a132, type: 3} + m_Script: {fileID: 11500000, guid: bff89a8a00803ab45922cc05aaa080b7, type: 3} m_Name: m_EditorClassIdentifier: - lockOnParentObjectLock: 1 - touchStarted: - m_PersistentCalls: - m_Calls: [] - touchEnded: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &1977887397 + processControllerQualifiedName: VRBuilder.UX.StandardProcessController, VRBuilder.Core, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + autoStartProcess: 1 + useCustomPrefab: 0 + customPrefab: {fileID: 0} +--- !u!114 &1815494805 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1977887390} + m_GameObject: {fileID: 1815494800} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3292d68f2db97a8418ca72f5b8bb5b69, type: 3} + m_Script: {fileID: 11500000, guid: 9e218973d8ce7b141a938229d9877d26, type: 3} m_Name: m_EditorClassIdentifier: - defaultColor: - serializedVersion: 2 - rgba: 4294918375 - touchingColor: - serializedVersion: 2 - rgba: 4291359096 - materialIndex: 1 - materialColorProperty: _EmissionColor ---- !u!1001 &1978455790 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1756511964} - m_Modifications: - - target: {fileID: 5562819036174228372, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} - propertyPath: m_Name - value: LightSabre - objectReference: {fileID: 0} - - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} - propertyPath: m_RootOrder - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} - propertyPath: m_LocalPosition.x - value: 0.4 - objectReference: {fileID: 0} - - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} - propertyPath: m_LocalPosition.y - value: 1.18 - objectReference: {fileID: 0} - - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} - propertyPath: m_LocalPosition.z - value: 0.6 - objectReference: {fileID: 0} - - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} - propertyPath: m_LocalRotation.x - value: -0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: -90 - objectReference: {fileID: 0} - - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} ---- !u!4 &1978455791 stripped + lockSceneObjectsOnSceneStart: 1 +--- !u!4 &1815494806 Transform: - m_CorrespondingSourceObject: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} - m_PrefabInstance: {fileID: 1978455790} + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} ---- !u!1 &2008175315 stripped + m_GameObject: {fileID: 1815494800} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1816767293 GameObject: - m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} - m_PrefabInstance: {fileID: 660021079} + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} ---- !u!65 &2008175316 -BoxCollider: + serializedVersion: 6 + m_Component: + - component: {fileID: 1816767294} + - component: {fileID: 1816767295} + m_Layer: 0 + m_Name: Collider (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1816767294 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2008175315} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 0.15393993, z: 1} - m_Center: {x: 0, y: 0.07696997, z: 0} ---- !u!65 &2008175317 -BoxCollider: + m_GameObject: {fileID: 1816767293} + m_LocalRotation: {x: 0.5, y: 0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0.245, y: 0, z: -0.0040003136} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 660021081} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 90} +--- !u!136 &1816767295 +CapsuleCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2008175315} + m_GameObject: {fileID: 1816767293} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 0.2, y: 3.5721025, z: 0.2} - m_Center: {x: 0, y: 1.7860513, z: 0} ---- !u!1001 &2011926243 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1192304054} - m_Modifications: - - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_RootOrder - value: 2 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_LocalPosition.z - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -7511558181221131132, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 3b8d4fff00195aa4792d649902e68bcd, type: 2} - - target: {fileID: -7511558181221131132, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_Materials.Array.data[1] - value: - objectReference: {fileID: 2100000, guid: 525bac3f393fa1349a1508822fb6abb0, type: 2} - - target: {fileID: -7511558181221131132, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_Materials.Array.data[2] - value: - objectReference: {fileID: 2100000, guid: 05eaaf1738723ca4a95a70d7a20e71b3, type: 2} - - target: {fileID: 919132149155446097, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_Name - value: Transformer - objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_StaticEditorFlags - value: 4294967295 - objectReference: {fileID: 0} - - target: {fileID: 4287207148634975974, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 2a4df160d58d76d4dac4a97bfb6dae35, type: 2} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} ---- !u!4 &2011926244 stripped -Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - m_PrefabInstance: {fileID: 2011926243} - m_PrefabAsset: {fileID: 0} ---- !u!1 &2011926245 stripped + m_Radius: 0.02 + m_Height: 0.2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &1831340543 stripped GameObject: - m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} - m_PrefabInstance: {fileID: 2011926243} + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + m_PrefabInstance: {fileID: 1006305323} m_PrefabAsset: {fileID: 0} ---- !u!114 &2011926246 +--- !u!4 &1831340544 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: e0eb73a744a54e74a98efc5eed3a5d4d, type: 3} + m_PrefabInstance: {fileID: 1006305323} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1831340547 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2011926245} + m_GameObject: {fileID: 1831340543} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: - uniqueName: Button + serializedGuid: + serializedGuid: 9312dac0932f8845822278eeaf6370d4 + uniqueName: Shield tags: [] ---- !u!1 &2013188259 +--- !u!1 &1836407204 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -13440,194 +13018,220 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2013188264} - - component: {fileID: 2013188260} - - component: {fileID: 2013188263} - - component: {fileID: 2013188262} - - component: {fileID: 2013188261} + - component: {fileID: 1836407205} m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera + m_Name: Middle_1_Left + m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!20 &2013188260 -Camera: +--- !u!4 &1836407205 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1836407204} + m_LocalRotation: {x: 0.0013464622, y: -0.0029157132, z: -0.22192244, w: 0.9750591} + m_LocalPosition: {x: -0.039041024, y: 0.0000006005168, z: 0.00000011503696} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1714243700} + m_Father: {fileID: 2030842803} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1854500746 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1854500747} + - component: {fileID: 1854500748} + m_Layer: 0 + m_Name: ShieldLight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1854500747 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1854500746} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.4, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1831340544} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!108 &1854500748 +Light: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2013188259} + m_GameObject: {fileID: 1854500746} m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.01 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: -1 + serializedVersion: 10 + m_Type: 2 + m_Shape: 0 + m_Color: {r: 1, g: 0, b: 1, a: 1} + m_Intensity: 2 + m_Range: 3 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 1 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!114 &2013188261 -MonoBehaviour: + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!1 &1883760418 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2013188259} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} - m_Name: - m_EditorClassIdentifier: - m_TrackingType: 0 - m_UpdateType: 0 - m_IgnoreTrackingState: 0 - m_PositionInput: - m_UseReference: 0 - m_Action: - m_Name: Position - m_Type: 0 - m_ExpectedControlType: - m_Id: 0bacfa51-7938-4a88-adae-9e8ba6c59d23 - m_Processors: - m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: f5efb008-b167-4d0f-b9e0-49a2350a85b3 - m_Path: /centerEyePosition - m_Interactions: - m_Processors: - m_Groups: - m_Action: Position - m_Flags: 0 - m_Flags: 0 - m_Reference: {fileID: 0} - m_RotationInput: - m_UseReference: 0 - m_Action: - m_Name: Rotation - m_Type: 0 - m_ExpectedControlType: - m_Id: 5439f14e-c9da-4bd1-ad3f-7121a75c10d9 - m_Processors: - m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: f984a7fd-f7e2-45ef-b21d-699a5d160f29 - m_Path: /centerEyeRotation - m_Interactions: - m_Processors: - m_Groups: - m_Action: Rotation - m_Flags: 0 - m_Flags: 0 - m_Reference: {fileID: 0} - m_TrackingStateInput: - m_UseReference: 0 - m_Action: - m_Name: Tracking State Input - m_Type: 0 - m_ExpectedControlType: - m_Id: 78fa8c8c-b04c-41be-bcb0-b08932ba313a - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_PositionAction: - m_Name: Position - m_Type: 0 - m_ExpectedControlType: - m_Id: 0bacfa51-7938-4a88-adae-9e8ba6c59d23 - m_Processors: - m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: f5efb008-b167-4d0f-b9e0-49a2350a85b3 - m_Path: /centerEyePosition - m_Interactions: - m_Processors: - m_Groups: - m_Action: Position - m_Flags: 0 - m_Flags: 0 - m_RotationAction: - m_Name: Rotation - m_Type: 0 - m_ExpectedControlType: - m_Id: 5439f14e-c9da-4bd1-ad3f-7121a75c10d9 - m_Processors: - m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: f984a7fd-f7e2-45ef-b21d-699a5d160f29 - m_Path: /centerEyeRotation - m_Interactions: - m_Processors: - m_Groups: - m_Action: Rotation - m_Flags: 0 - m_Flags: 0 ---- !u!81 &2013188262 -AudioListener: + serializedVersion: 6 + m_Component: + - component: {fileID: 1883760419} + m_Layer: 8 + m_Name: Anchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1883760419 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1883760418} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.00000005960466, y: 0.00999999, z: -0.000000059604638} + m_LocalScale: {x: 0.99999976, y: 1, z: 0.99999976} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 375530500} + m_Father: {fileID: 2014095924} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1889204433 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2013188259} - m_Enabled: 1 ---- !u!124 &2013188263 -Behaviour: + serializedVersion: 6 + m_Component: + - component: {fileID: 1889204434} + m_Layer: 0 + m_Name: Thumb_Tip_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1889204434 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2013188259} - m_Enabled: 1 ---- !u!4 &2013188264 + m_GameObject: {fileID: 1889204433} + m_LocalRotation: {x: 0.0000000018626451, y: 0.000000005587936, z: -0.000000014901163, w: 1} + m_LocalPosition: {x: -0.029552078, y: 0.0000000667572, z: -0.00000015109777} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 283625090} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1906445693 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1906445694} + m_Layer: 0 + m_Name: Index_Palm_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1906445694 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2013188259} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_GameObject: {fileID: 1906445693} + m_LocalRotation: {x: 0.9956038, y: -0.056100972, z: -0.070293866, w: -0.026165245} + m_LocalPosition: {x: -0.05402496, y: 0.0060563944, z: 0.02002304} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1389664210} + m_Children: + - {fileID: 189572713} + m_Father: {fileID: 105739408} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2014095923 +--- !u!1 &1909973945 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -13635,90 +13239,184 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2014095924} - - component: {fileID: 2014095928} - - component: {fileID: 2014095927} - - component: {fileID: 2014095926} - - component: {fileID: 2014095925} - m_Layer: 8 - m_Name: Teleportation Spot + - component: {fileID: 1909973946} + m_Layer: 0 + m_Name: BigHandLeft m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &2014095924 +--- !u!4 &1909973946 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2014095923} - m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} - m_LocalPosition: {x: -0.5, y: 1, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_GameObject: {fileID: 1909973945} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: -1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1883760419} - m_Father: {fileID: 813701130} + - {fileID: 628411316} + - {fileID: 1289966973} + - {fileID: 2139940513} + - {fileID: 388840135} + - {fileID: 391997631} + m_Father: {fileID: 54233951} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} ---- !u!114 &2014095925 -MonoBehaviour: + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1968119229 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2014095923} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 584ad12357614f4fbb5460fdf72e8cc6, type: 3} - m_Name: - m_EditorClassIdentifier: - lockOnParentObjectLock: 1 - teleportEnded: - m_PersistentCalls: - m_Calls: [] - initialized: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &2014095926 + serializedVersion: 6 + m_Component: + - component: {fileID: 1968119230} + m_Layer: 0 + m_Name: Ring_0_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1968119230 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1968119229} + m_LocalRotation: {x: 0.0037497291, y: 0.028980805, z: -0.08957866, w: 0.995551} + m_LocalPosition: {x: -0.060953286, y: -0.00000024797393, z: 0.00000015258789} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 995671520} + m_Father: {fileID: 1142522481} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1969415632 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3396913584297481876, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + m_PrefabInstance: {fileID: 660021079} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1969415634 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2014095923} + m_GameObject: {fileID: 1969415632} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} m_Name: m_EditorClassIdentifier: - uniqueName: Teleportation Spot_2 + serializedGuid: + serializedGuid: aef51f1ab9c2c94585af2ac8c731f577 + uniqueName: Ring tags: [] ---- !u!65 &2014095927 +--- !u!1001 &1977887389 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2011926244} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} + propertyPath: m_LocalPosition.y + value: 0.6499 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} + propertyPath: m_LocalPosition.z + value: -0.95 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7511558181221131132, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 3b8d4fff00195aa4792d649902e68bcd, type: 2} + - target: {fileID: -7511558181221131132, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: c434c7521ce308c46bde59286f6b7998, type: 2} + - target: {fileID: 919132149155446097, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} + propertyPath: m_Name + value: TouchPanel + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} + propertyPath: m_StaticEditorFlags + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} +--- !u!1 &1977887390 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 6db30c55efbe76c4c864604a925873d6, type: 3} + m_PrefabInstance: {fileID: 1977887389} + m_PrefabAsset: {fileID: 0} +--- !u!65 &1977887391 BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2014095923} + m_GameObject: {fileID: 1977887390} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 serializedVersion: 2 - m_Size: {x: 1, y: 0.01, z: 1} - m_Center: {x: 0, y: 0.02, z: 0} ---- !u!114 &2014095928 + m_Size: {x: 0.20000003, y: 0.2121321, z: 0.12727925} + m_Center: {x: 0, y: 0.03535535, z: -0.063639626} +--- !u!114 &1977887393 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2014095923} + m_GameObject: {fileID: 1977887390} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0193c710a3042c6479b28370a44e0b0f, type: 3} + m_Script: {fileID: 11500000, guid: d1bcb89c5e4474247b7923fe1388ad1a, type: 3} m_Name: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} @@ -13727,11 +13425,11 @@ MonoBehaviour: serializedVersion: 2 m_Bits: 4294967295 m_InteractionLayers: - m_Bits: 256 + m_Bits: 1 m_DistanceCalculationMode: 1 - m_SelectMode: 1 + m_SelectMode: 0 m_FocusMode: 1 - m_CustomReticle: {fileID: 3819676577015031517, guid: c9ea54082e6151843acb776fb52ed6f7, type: 3} + m_CustomReticle: {fileID: 0} m_AllowGazeInteraction: 0 m_AllowGazeSelect: 0 m_OverrideGazeTimeToSelect: 0 @@ -13811,97 +13509,337 @@ MonoBehaviour: m_OnDeactivate: m_PersistentCalls: m_Calls: [] - m_TeleportationProvider: {fileID: 0} - m_MatchOrientation: 2 - m_MatchDirectionalInput: 0 - m_TeleportTrigger: 3 - m_FilterSelectionByHitNormal: 0 - m_UpNormalToleranceDegrees: 30 - m_Teleporting: + m_AttachTransform: {fileID: 0} + m_SecondaryAttachTransform: {fileID: 0} + m_UseDynamicAttach: 0 + m_MatchAttachPosition: 1 + m_MatchAttachRotation: 1 + m_SnapToColliderVolume: 1 + m_ReinitializeDynamicAttachEverySingleGrab: 1 + m_AttachEaseInTime: 0.15 + m_MovementType: 1 + m_VelocityDamping: 1 + m_VelocityScale: 1 + m_AngularVelocityDamping: 1 + m_AngularVelocityScale: 1 + m_TrackPosition: 1 + m_SmoothPosition: 0 + m_SmoothPositionAmount: 5 + m_TightenPosition: 0.5 + m_TrackRotation: 1 + m_SmoothRotation: 0 + m_SmoothRotationAmount: 5 + m_TightenRotation: 0.5 + m_TrackScale: 1 + m_SmoothScale: 0 + m_SmoothScaleAmount: 8 + m_TightenScale: 0.1 + m_ThrowOnDetach: 1 + m_ThrowSmoothingDuration: 0.25 + m_ThrowSmoothingCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ThrowVelocityScale: 1.5 + m_ThrowAngularVelocityScale: 1 + m_ForceGravityOnDetach: 0 + m_RetainTransformParent: 1 + m_AttachPointCompatibilityMode: 0 + m_StartingSingleGrabTransformers: [] + m_StartingMultipleGrabTransformers: [] + m_AddDefaultGrabTransformers: 1 + isTouchable: 1 + isGrabbable: 0 + isUsable: 0 +--- !u!54 &1977887394 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1977887390} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &1977887395 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1977887390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} + m_Name: + m_EditorClassIdentifier: + serializedGuid: + serializedGuid: abba5cf45ea87a4fa9ecd84b156589f3 + uniqueName: TouchPanel + tags: [] +--- !u!114 &1977887396 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1977887390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 573907d717ac4934eb429f2f5978a132, type: 3} + m_Name: + m_EditorClassIdentifier: + lockOnParentObjectLock: 1 + touchStarted: + m_PersistentCalls: + m_Calls: [] + touchEnded: m_PersistentCalls: m_Calls: [] - m_TeleportAnchorTransform: {fileID: 1883760419} ---- !u!21 &2018913513 -Material: - serializedVersion: 8 +--- !u!114 &1977887397 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Standard - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ValidKeywords: - - _ALPHAPREMULTIPLY_ON - m_InvalidKeywords: [] - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3000 - stringTagMap: - RenderType: Transparent - 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_Ints: [] - m_Floats: - - _BumpScale: 1 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DstBlend: 10 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 3 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _UVSec: 0 - - _ZWrite: 0 - m_Colors: - - _Color: {r: 0.4, g: 0.5882353, b: 1, a: 0.19607843} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - m_BuildTextureStacks: [] ---- !u!1 &2028302227 + m_GameObject: {fileID: 1977887390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3292d68f2db97a8418ca72f5b8bb5b69, type: 3} + m_Name: + m_EditorClassIdentifier: + defaultColor: + serializedVersion: 2 + rgba: 4294918375 + touchingColor: + serializedVersion: 2 + rgba: 4291359096 + materialIndex: 1 + materialColorProperty: _EmissionColor +--- !u!1001 &1978455790 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1756511964} + m_Modifications: + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: uniqueId + value: 3a6bac90-18f1-480a-9883-c7486ede5c1b + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.size + value: 16 + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[0] + value: 66 + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[1] + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[2] + value: 129 + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[3] + value: 144 + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[4] + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[5] + value: 62 + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[6] + value: 126 + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[7] + value: 79 + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[8] + value: 139 + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[9] + value: 227 + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[10] + value: 135 + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[11] + value: 97 + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[12] + value: 209 + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[13] + value: 122 + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[14] + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 1978455793, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[15] + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: uniqueId + value: 58b7201a-9d6a-464f-8869-ffa708ccc6f8 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.size + value: 16 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[0] + value: 217 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[1] + value: 239 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[2] + value: 192 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[3] + value: 170 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[4] + value: 73 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[5] + value: 25 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[6] + value: 195 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[7] + value: 78 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[8] + value: 152 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[9] + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[10] + value: 45 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[11] + value: 248 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[12] + value: 153 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[13] + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[14] + value: 129 + objectReference: {fileID: 0} + - target: {fileID: 2999420514030884948, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: serializedGuid.serializedGuid.Array.data[15] + value: 22 + objectReference: {fileID: 0} + - target: {fileID: 5562819036174228372, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: m_Name + value: LightSabre + objectReference: {fileID: 0} + - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: m_LocalPosition.x + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: m_LocalPosition.y + value: 1.18 + objectReference: {fileID: 0} + - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: m_LocalPosition.z + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} +--- !u!4 &1978455791 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6459590485641253054, guid: 871cf8bed45c27f46a347df0553bdcec, type: 3} + m_PrefabInstance: {fileID: 1978455790} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1982479363 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -13909,31 +13847,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2028302228} + - component: {fileID: 1982479364} m_Layer: 0 - m_Name: Middle_Palm_Left + m_Name: RayOrigin m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &2028302228 +--- !u!4 &1982479364 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2028302227} - m_LocalRotation: {x: 0.99872494, y: -0.046419356, z: -0.015558949, w: -0.012318821} - m_LocalPosition: {x: -0.05391815, y: 0.0050031445, z: 0.0017454529} + m_GameObject: {fileID: 1982479363} + m_LocalRotation: {x: 0.2164396, y: 0, z: 0, w: 0.97629607} + m_LocalPosition: {x: 0.0215, y: 0.0244, z: -0.0387} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1292505773} - m_Father: {fileID: 961598098} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2053954418 + m_Children: [] + m_Father: {fileID: 496138948} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 25, y: 0, z: 0} +--- !u!1 &1987239406 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -13941,35 +13878,135 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2053954419} + - component: {fileID: 1987239407} + - component: {fileID: 1987239408} m_Layer: 0 - m_Name: BigHandLeft + m_Name: HandLeft m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &2053954419 +--- !u!4 &1987239407 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2053954418} + m_GameObject: {fileID: 1987239406} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: -0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1612617676} - - {fileID: 487514512} - - {fileID: 1856484991} - - {fileID: 1884881952} - - {fileID: 436658224} - m_Father: {fileID: 1202705125} - m_RootOrder: 0 + m_Children: [] + m_Father: {fileID: 1015737782} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2055471705 +--- !u!137 &1987239408 +SkinnedMeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1987239406} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 3 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 2ab12257a86442740ba3dc5694817baa, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: -1400252653696632910, guid: 3cc1bfa741063664e8b13a63afcd062f, type: 3} + m_Bones: + - {fileID: 512971542} + - {fileID: 1352490008} + - {fileID: 626500155} + - {fileID: 1481350550} + - {fileID: 795450758} + - {fileID: 1307398688} + - {fileID: 1078070624} + - {fileID: 1430860603} + - {fileID: 995671520} + - {fileID: 1968119230} + - {fileID: 2110589559} + - {fileID: 189572713} + - {fileID: 1784977341} + - {fileID: 1142522481} + - {fileID: 1675801262} + - {fileID: 1906445694} + - {fileID: 283625090} + - {fileID: 1074416408} + - {fileID: 25957662} + - {fileID: 105739408} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 105739408} + m_AABB: + m_Center: {x: -0.10444905, y: -0.0046319105, z: 0.015674934} + m_Extent: {x: 0.10534169, y: 0.05054314, z: 0.081589594} + m_DirtyAABB: 0 +--- !u!1 &2008175315 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: acf8029ebcbe52b4488ed515778fc70b, type: 3} + m_PrefabInstance: {fileID: 660021079} + m_PrefabAsset: {fileID: 0} +--- !u!65 &2008175316 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2008175315} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 0.15393993, z: 1} + m_Center: {x: 0, y: 0.07696997, z: 0} +--- !u!65 &2008175317 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2008175315} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.2, y: 3.5721025, z: 0.2} + m_Center: {x: 0, y: 1.7860513, z: 0} +--- !u!1 &2008584328 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -13977,721 +14014,890 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2055471706} + - component: {fileID: 2008584333} + - component: {fileID: 2008584329} + - component: {fileID: 2008584332} + - component: {fileID: 2008584331} + - component: {fileID: 2008584330} + - component: {fileID: 2008584334} m_Layer: 0 - m_Name: Little_Palm_Left - m_TagString: Untagged + m_Name: Main Camera + m_TagString: MainCamera m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &2055471706 -Transform: +--- !u!20 &2008584329 +Camera: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2055471705} - m_LocalRotation: {x: 0.99290055, y: -0.033564012, z: 0.11202527, w: 0.02173406} - m_LocalPosition: {x: -0.048623275, y: 0.0027686262, z: -0.026522674} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 172305591} - m_Father: {fileID: 961598098} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2074732592 -GameObject: + m_GameObject: {fileID: 2008584328} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.01 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!114 &2008584330 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2008584328} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 0bacfa51-7938-4a88-adae-9e8ba6c59d23 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: f5efb008-b167-4d0f-b9e0-49a2350a85b3 + m_Path: /centerEyePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 5439f14e-c9da-4bd1-ad3f-7121a75c10d9 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: f984a7fd-f7e2-45ef-b21d-699a5d160f29 + m_Path: /centerEyeRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 78fa8c8c-b04c-41be-bcb0-b08932ba313a + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 0bacfa51-7938-4a88-adae-9e8ba6c59d23 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: f5efb008-b167-4d0f-b9e0-49a2350a85b3 + m_Path: /centerEyePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 5439f14e-c9da-4bd1-ad3f-7121a75c10d9 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: f984a7fd-f7e2-45ef-b21d-699a5d160f29 + m_Path: /centerEyeRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 +--- !u!81 &2008584331 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2008584328} + m_Enabled: 1 +--- !u!124 &2008584332 +Behaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2074732593} - - component: {fileID: 2074732594} - m_Layer: 0 - m_Name: Ball origin - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2074732593 + m_GameObject: {fileID: 2008584328} + m_Enabled: 1 +--- !u!4 &2008584333 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2074732592} + m_GameObject: {fileID: 2008584328} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 2.125, z: -3} - m_LocalScale: {x: 0.2400001, y: 0.24, z: 0.2400001} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1743725476} - m_RootOrder: 1 + m_Father: {fileID: 65634329} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2074732594 -MonoBehaviour: +--- !u!82 &2008584334 +AudioSource: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2074732592} + m_GameObject: {fileID: 2008584328} m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} - m_Name: - m_EditorClassIdentifier: - uniqueName: Ball origin - tags: [] ---- !u!1 &2115926221 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2115926223} - - component: {fileID: 2115926226} - - component: {fileID: 2115926222} - - component: {fileID: 2115926225} - - component: {fileID: 2115926224} - m_Layer: 0 - m_Name: Right Teleport Controller - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &2115926222 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2115926221} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} - m_Name: - m_EditorClassIdentifier: - m_InteractionManager: {fileID: 1457759947} - m_InteractionLayerMask: + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 1 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: serializedVersion: 2 - m_Bits: 256 - m_InteractionLayers: - m_Bits: 256 - m_AttachTransform: {fileID: 0} - m_KeepSelectedTargetValid: 0 - m_DisableVisualsWhenBlockedInGroup: 1 - m_StartingSelectedInteractable: {fileID: 0} - m_StartingTargetFilter: {fileID: 0} - m_HoverEntered: - m_PersistentCalls: - m_Calls: [] - m_HoverExited: - m_PersistentCalls: - m_Calls: [] - m_SelectEntered: - m_PersistentCalls: - m_Calls: [] - m_SelectExited: - m_PersistentCalls: - m_Calls: [] - m_StartingHoverFilters: [] - m_StartingSelectFilters: [] - m_OnHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_OnHoverExited: - m_PersistentCalls: - m_Calls: [] - m_OnSelectEntered: - m_PersistentCalls: - m_Calls: [] - m_OnSelectExited: - m_PersistentCalls: - m_Calls: [] - m_SelectActionTrigger: 0 - m_HideControllerOnSelect: 0 - m_AllowHoveredActivate: 1 - m_TargetPriorityMode: 0 - m_PlayAudioClipOnSelectEntered: 0 - m_AudioClipForOnSelectEntered: {fileID: 0} - m_PlayAudioClipOnSelectExited: 0 - m_AudioClipForOnSelectExited: {fileID: 0} - m_PlayAudioClipOnSelectCanceled: 0 - m_AudioClipForOnSelectCanceled: {fileID: 0} - m_PlayAudioClipOnHoverEntered: 0 - m_AudioClipForOnHoverEntered: {fileID: 0} - m_PlayAudioClipOnHoverExited: 0 - m_AudioClipForOnHoverExited: {fileID: 0} - m_PlayAudioClipOnHoverCanceled: 0 - m_AudioClipForOnHoverCanceled: {fileID: 0} - m_AllowHoverAudioWhileSelecting: 1 - m_PlayHapticsOnSelectEntered: 0 - m_HapticSelectEnterIntensity: 0 - m_HapticSelectEnterDuration: 0 - m_PlayHapticsOnSelectExited: 0 - m_HapticSelectExitIntensity: 0 - m_HapticSelectExitDuration: 0 - m_PlayHapticsOnSelectCanceled: 0 - m_HapticSelectCancelIntensity: 0 - m_HapticSelectCancelDuration: 0 - m_PlayHapticsOnHoverEntered: 0 - m_HapticHoverEnterIntensity: 0 - m_HapticHoverEnterDuration: 0 - m_PlayHapticsOnHoverExited: 0 - m_HapticHoverExitIntensity: 0 - m_HapticHoverExitDuration: 0 - m_PlayHapticsOnHoverCanceled: 0 - m_HapticHoverCancelIntensity: 0 - m_HapticHoverCancelDuration: 0 - m_AllowHoverHapticsWhileSelecting: 1 - m_LineType: 1 - m_BlendVisualLinePoints: 1 - m_MaxRaycastDistance: 30 - m_RayOriginTransform: {fileID: 289335517} - m_ReferenceFrame: {fileID: 0} - m_Velocity: 10 - m_Acceleration: 9.8 - m_AdditionalGroundHeight: 0.1 - m_AdditionalFlightTime: 0.5 - m_EndPointDistance: 30 - m_EndPointHeight: -10 - m_ControlPointDistance: 10 - m_ControlPointHeight: 5 - m_SampleFrequency: 20 - m_HitDetectionType: 0 - m_SphereCastRadius: 0 - m_ConeCastAngle: 6 - m_RaycastMask: + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: serializedVersion: 2 - m_Bits: 256 - m_RaycastTriggerInteraction: 1 - m_RaycastSnapVolumeInteraction: 1 - m_HitClosestOnly: 0 - m_HoverToSelect: 1 - m_HoverTimeToSelect: 0 - m_AutoDeselect: 0 - m_TimeToAutoDeselect: 3 - m_EnableUIInteraction: 1 - m_BlockUIOnInteractableSelection: 1 - m_AllowAnchorControl: 1 - m_UseForceGrab: 1 - m_RotateSpeed: 180 - m_TranslateSpeed: 1 - m_AnchorRotateReferenceFrame: {fileID: 0} - m_AnchorRotationMode: 0 - m_UIHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_UIHoverExited: - m_PersistentCalls: - m_Calls: [] - m_EnableARRaycasting: 0 - m_OccludeARHitsWith3DObjects: 0 - m_OccludeARHitsWith2DObjects: 0 - m_ScaleMode: 0 ---- !u!4 &2115926223 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!1001 &2011926243 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1192304054} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_LocalPosition.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7511558181221131132, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 3b8d4fff00195aa4792d649902e68bcd, type: 2} + - target: {fileID: -7511558181221131132, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: 525bac3f393fa1349a1508822fb6abb0, type: 2} + - target: {fileID: -7511558181221131132, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_Materials.Array.data[2] + value: + objectReference: {fileID: 2100000, guid: 05eaaf1738723ca4a95a70d7a20e71b3, type: 2} + - target: {fileID: 919132149155446097, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_Name + value: Transformer + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_StaticEditorFlags + value: 4294967295 + objectReference: {fileID: 0} + - target: {fileID: 4287207148634975974, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 2a4df160d58d76d4dac4a97bfb6dae35, type: 2} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} +--- !u!4 &2011926244 stripped Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + m_PrefabInstance: {fileID: 2011926243} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2011926245 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: d8aea3ae5508afb48a29b288fed4a3d1, type: 3} + m_PrefabInstance: {fileID: 2011926243} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2011926246 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2115926221} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_GameObject: {fileID: 2011926245} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} + m_Name: + m_EditorClassIdentifier: + serializedGuid: + serializedGuid: 015b2c35646e844ab0f6b7d695b2ae03 + uniqueName: Button + tags: [] +--- !u!1 &2014095923 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2014095924} + - component: {fileID: 2014095928} + - component: {fileID: 2014095927} + - component: {fileID: 2014095926} + - component: {fileID: 2014095925} + m_Layer: 8 + m_Name: Teleportation Spot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2014095924 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2014095923} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} + m_LocalPosition: {x: -0.5, y: 1, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 289335517} - m_Father: {fileID: 1839515083} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2115926224 + - {fileID: 1883760419} + m_Father: {fileID: 813701130} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!114 &2014095925 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2115926221} + m_GameObject: {fileID: 2014095923} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} + m_Script: {fileID: 11500000, guid: 584ad12357614f4fbb5460fdf72e8cc6, type: 3} m_Name: m_EditorClassIdentifier: - m_LineWidth: 0.02 - m_OverrideInteractorLineLength: 1 - m_LineLength: 10 - m_AutoAdjustLineLength: 0 - m_MinLineLength: 0.5 - m_UseDistanceToHitAsMaxLineLength: 1 - m_LineRetractionDelay: 0.5 - m_LineLengthChangeSpeed: 12 - m_WidthCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - m_SetLineColorGradient: 1 - m_ValidColorGradient: - serializedVersion: 2 - key0: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 0} - key1: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 1} - key2: {r: 0.47058824, g: 0.94509804, b: 0.78431374, a: 1} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 32768 - ctime2: 65535 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 32768 - atime2: 65535 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_NumColorKeys: 3 - m_NumAlphaKeys: 3 - m_InvalidColorGradient: - serializedVersion: 2 - key0: {r: 1, g: 0.39215687, b: 0.18431373, a: 0} - key1: {r: 1, g: 0.39215687, b: 0.18431373, a: 1} - key2: {r: 1, g: 0.39215687, b: 0.18431373, a: 1} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 32768 - ctime2: 65535 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 32768 - atime2: 65535 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_NumColorKeys: 3 - m_NumAlphaKeys: 3 - m_BlockedColorGradient: - serializedVersion: 2 - key0: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} - key1: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - m_TreatSelectionAsValidState: 0 - m_SmoothMovement: 0 - m_FollowTightness: 10 - m_SnapThresholdDistance: 10 - m_Reticle: {fileID: 0} - m_BlockedReticle: {fileID: 0} - m_StopLineAtFirstRaycastHit: 1 - m_StopLineAtSelection: 0 - m_SnapEndpointIfAvailable: 1 - m_LineBendRatio: 0.5 - m_OverrideInteractorLineOrigin: 1 - m_LineOriginTransform: {fileID: 0} - m_LineOriginOffset: 0 ---- !u!120 &2115926225 -LineRenderer: + lockOnParentObjectLock: 1 + teleportEnded: + m_PersistentCalls: + m_Calls: [] + initialized: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &2014095926 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2014095923} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} + m_Name: + m_EditorClassIdentifier: + serializedGuid: + serializedGuid: f5eb8ec6cdff774a82274c2396bc2513 + uniqueName: Teleportation Spot_2 + tags: [] +--- !u!65 &2014095927 +BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2115926221} + m_GameObject: {fileID: 2014095923} + m_Material: {fileID: 0} + m_IsTrigger: 0 m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 0 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_Positions: - - {x: 0, y: 0, z: 0} - - {x: 0, y: 0, z: 0} - m_Parameters: - serializedVersion: 3 - widthMultiplier: 0.02 - widthCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - colorGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - numCornerVertices: 4 - numCapVertices: 4 - alignment: 0 - textureMode: 0 - shadowBias: 0.5 - generateLightingData: 0 - m_UseWorldSpace: 1 - m_Loop: 0 ---- !u!114 &2115926226 + serializedVersion: 2 + m_Size: {x: 1, y: 0.01, z: 1} + m_Center: {x: 0, y: 0.02, z: 0} +--- !u!114 &2014095928 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2115926221} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UpdateTrackingType: 0 - m_EnableInputTracking: 1 - m_EnableInputActions: 0 - m_ModelPrefab: {fileID: 0} - m_ModelParent: {fileID: 686681832} - m_Model: {fileID: 0} - m_AnimateModel: 0 - m_ModelSelectTransition: - m_ModelDeSelectTransition: - m_PositionAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -3326005586356538449, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RotationAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 5101698808175986029, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_IsTrackedAction: - m_UseReference: 0 - m_Action: - m_Name: Is Tracked - m_Type: 1 - m_ExpectedControlType: - m_Id: efc12dae-12cc-43fd-a01a-e69de79f1bcf - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 1 - m_Reference: {fileID: 0} - m_TrackingStateAction: - m_UseReference: 0 - m_Action: - m_Name: Tracking State - m_Type: 0 - m_ExpectedControlType: - m_Id: cc4e2ef5-ea43-46d3-b5d9-bb0fd6cf288f - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_SelectAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -8270564778575511633, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_SelectActionValue: - m_UseReference: 1 - m_Action: - m_Name: Select Action Value - m_Type: 0 - m_ExpectedControlType: - m_Id: 056d5a5d-5859-40a6-9c77-a8c50f2557c3 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 4766120400929042988, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ActivateAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 83097790271614945, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ActivateActionValue: - m_UseReference: 1 - m_Action: - m_Name: Activate Action Value - m_Type: 0 - m_ExpectedControlType: - m_Id: 0c708103-b771-4cf9-a58f-f4cd7216526c - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -3285721481334498719, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 3279264004350380116, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressActionValue: - m_UseReference: 0 - m_Action: - m_Name: UI Press Action Value - m_Type: 0 - m_ExpectedControlType: - m_Id: 820dd6dd-cf7f-42f3-bfef-c218ea683709 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_UIScrollAction: - m_UseReference: 0 - m_Action: - m_Name: UI Scroll - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 71819cdb-55f1-412a-b576-2a8f2085366f - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_HapticDeviceAction: - m_UseReference: 1 - m_Action: - m_Name: Haptic Device - m_Type: 0 - m_ExpectedControlType: - m_Id: 9ad5ff42-2240-49bb-89c4-c981d3c023eb - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -8222252007134549311, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RotateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -5913262927076077117, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_DirectionalAnchorRotationAction: - m_UseReference: 0 - m_Action: - m_Name: Directional Anchor Rotation - m_Type: 0 - m_ExpectedControlType: - m_Id: f900ec0d-eadb-4813-baa4-f9f0709793fe - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_TranslateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 875253871413052681, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ScaleToggleAction: - m_UseReference: 0 - m_Action: - m_Name: Scale Toggle - m_Type: 1 - m_ExpectedControlType: - m_Id: 9b17f14a-5c0c-47d4-bbf7-e6b9fceff015 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ScaleDeltaAction: - m_UseReference: 0 - m_Action: - m_Name: Scale Delta - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 2b918fe0-516b-4793-b6b1-98f6a5f40457 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ButtonPressPoint: 0.5 + m_GameObject: {fileID: 2014095923} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0193c710a3042c6479b28370a44e0b0f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 2 + m_DistanceCalculationMode: 1 + m_SelectMode: 1 + m_FocusMode: 1 + m_CustomReticle: {fileID: 3819676577015031517, guid: c9ea54082e6151843acb776fb52ed6f7, type: 3} + m_AllowGazeInteraction: 0 + m_AllowGazeSelect: 0 + m_OverrideGazeTimeToSelect: 0 + m_GazeTimeToSelect: 0.5 + m_OverrideTimeToAutoDeselectGaze: 0 + m_TimeToAutoDeselectGaze: 3 + m_AllowGazeAssistance: 0 + m_FirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_LastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_FirstSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_LastSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_FirstFocusEntered: + m_PersistentCalls: + m_Calls: [] + m_LastFocusExited: + m_PersistentCalls: + m_Calls: [] + m_FocusEntered: + m_PersistentCalls: + m_Calls: [] + m_FocusExited: + m_PersistentCalls: + m_Calls: [] + m_Activated: + m_PersistentCalls: + m_Calls: [] + m_Deactivated: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_StartingInteractionStrengthFilters: [] + m_OnFirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnLastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectCanceled: + m_PersistentCalls: + m_Calls: [] + m_OnActivate: + m_PersistentCalls: + m_Calls: [] + m_OnDeactivate: + m_PersistentCalls: + m_Calls: [] + m_TeleportationProvider: {fileID: 0} + m_MatchOrientation: 2 + m_MatchDirectionalInput: 0 + m_TeleportTrigger: 3 + m_FilterSelectionByHitNormal: 0 + m_UpNormalToleranceDegrees: 30 + m_Teleporting: + m_PersistentCalls: + m_Calls: [] + m_TeleportAnchorTransform: {fileID: 1883760419} +--- !u!21 &2018913513 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Standard + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ValidKeywords: + - _ALPHAPREMULTIPLY_ON + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + 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_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 3 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 0 + m_Colors: + - _Color: {r: 0.4, g: 0.5882353, b: 1, a: 0.19607843} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] +--- !u!1 &2030842802 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2030842803} + m_Layer: 0 + m_Name: Middle_0_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2030842803 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2030842802} + m_LocalRotation: {x: 0.037149172, y: -0.0391672, z: -0.020477412, w: 0.9983319} + m_LocalPosition: {x: -0.062340543, y: -0.00000025370625, z: -0.00000015303492} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1836407205} + m_Father: {fileID: 2139940513} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2040506299 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2040506300} + m_Layer: 0 + m_Name: AttachTransform + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2040506300 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2040506299} + m_LocalRotation: {x: 0.56707305, y: -0.556724, z: -0.42857817, w: 0.42989233} + m_LocalPosition: {x: -0.09850973, y: 0.018401135, z: -0.006201879} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 54233951} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0.594, y: -105.251, z: -90.602} +--- !u!1 &2074732592 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2074732593} + - component: {fileID: 2074732594} + m_Layer: 0 + m_Name: Ball origin + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2074732593 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2074732592} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 2.125, z: -3} + m_LocalScale: {x: 0.2400001, y: 0.24, z: 0.2400001} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1743725476} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2074732594 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2074732592} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 64582d436c5a4e84d89ba2d25709ddca, type: 3} + m_Name: + m_EditorClassIdentifier: + serializedGuid: + serializedGuid: 71e44fecd63a0743bae1b797028b6424 + uniqueName: Ball origin + tags: [] +--- !u!1 &2089871578 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2089871580} + - component: {fileID: 2089871579} + m_Layer: 0 + m_Name: XR Interaction Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2089871579 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2089871578} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] +--- !u!4 &2089871580 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2089871578} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1634918261} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2109031084 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2109031085} + m_Layer: 0 + m_Name: Index_2_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2109031085 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2109031084} + m_LocalRotation: {x: 0.006532279, y: 0.0032989993, z: -0.17059992, w: 0.98531324} + m_LocalPosition: {x: -0.023907261, y: -0.00000026226044, z: 0.00000022888183} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1390163570} + m_Father: {fileID: 740016310} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2110589558 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2110589559} + m_Layer: 0 + m_Name: Little_0_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2110589559 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2110589558} + m_LocalRotation: {x: -0.018601296, y: 0.022547437, z: -0.058639184, w: 0.99785125} + m_LocalPosition: {x: -0.056403197, y: -0.00000059507784, z: 0.0000003004074} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1307398688} + m_Father: {fileID: 1784977341} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!43 &2119201252 Mesh: m_ObjectHideFlags: 0 @@ -14880,6 +15086,69 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -4437772860958094431, guid: be0e1e3e3f7708e4ca1d7556ae7893bc, type: 3} +--- !u!1 &2131842498 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2131842499} + m_Layer: 0 + m_Name: Ring_Tip_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2131842499 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2131842498} + m_LocalRotation: {x: 0.000000011175867, y: -0.000000022351747, z: -0.00000020395967, w: 1} + m_LocalPosition: {x: -0.020554436, y: 0.000000114440915, z: -0.00000007867813} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1481350550} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2139940512 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2139940513} + m_Layer: 0 + m_Name: Middle_Palm_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2139940513 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2139940512} + m_LocalRotation: {x: 0.99872494, y: -0.046419356, z: -0.015558949, w: -0.012318821} + m_LocalPosition: {x: -0.05391815, y: 0.0050031445, z: 0.0017454529} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2030842803} + m_Father: {fileID: 1909973946} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2140681946 GameObject: m_ObjectHideFlags: 0 @@ -14926,3 +15195,35 @@ CapsuleCollider: m_Height: 0.2 m_Direction: 1 m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &2146657146 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2146657147} + m_Layer: 0 + m_Name: Ring_1_Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2146657147 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2146657146} + m_LocalRotation: {x: -0.00025817356, y: 0.00035699108, z: -0.14537643, w: 0.9893763} + m_LocalPosition: {x: -0.036576994, y: 0.00000019073485, z: 0.0000001502037} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 933831182} + m_Father: {fileID: 695049119} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Demo/Runtime/Scripts/VRBuilder.DemoScene.asmdef b/Demo/Runtime/Scripts/VRBuilder.DemoScene.asmdef new file mode 100644 index 000000000..6c8f15824 --- /dev/null +++ b/Demo/Runtime/Scripts/VRBuilder.DemoScene.asmdef @@ -0,0 +1,21 @@ +{ + "name": "VRBuilder.DemoScene", + "rootNamespace": "", + "references": [ + "VRBuilder.XRInteraction", + "VRBuilder.Core", + "VRBuilder.BasicInteraction" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [ + "VR_BUILDER", + "VR_BUILDER_XR_INTERACTION" + ], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Source/Core/Editor/TestTools/VRBuilder.Editor.TestTools.asmdef.meta b/Demo/Runtime/Scripts/VRBuilder.DemoScene.asmdef.meta similarity index 76% rename from Source/Core/Editor/TestTools/VRBuilder.Editor.TestTools.asmdef.meta rename to Demo/Runtime/Scripts/VRBuilder.DemoScene.asmdef.meta index 456cf31da..4fc026ac4 100644 --- a/Source/Core/Editor/TestTools/VRBuilder.Editor.TestTools.asmdef.meta +++ b/Demo/Runtime/Scripts/VRBuilder.DemoScene.asmdef.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a528400c534292a4cb5966183f2a4ee7 +guid: 5183d5d6fd79d9e41b919d8777496b44 AssemblyDefinitionImporter: externalObjects: {} userData: diff --git a/Demo/StreamingAssets/Processes/Demo - Core Features/Demo - Core Features.json b/Demo/StreamingAssets/Processes/Demo - Core Features/Demo - Core Features.json index 3a0b1dcd5..4f161f812 100644 --- a/Demo/StreamingAssets/Processes/Demo - Core Features/Demo - Core Features.json +++ b/Demo/StreamingAssets/Processes/Demo - Core Features/Demo - Core Features.json @@ -1,52 +1,57 @@ { "$id": "1", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper, VRBuilder.Core", - "Steps": { + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+ProcessWrapper, VRBuilder.Core", + "SubChapters": { "$id": "2", + "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.IChapter, VRBuilder.Core]], mscorlib", + "$values": [] + }, + "Steps": { + "$id": "3", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.IStep, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "3", + "$id": "4", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "4", + "$id": "5", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 168.0, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "41bcefba-67b4-4f9a-9ff0-51a6f8ea8c3f" }, "Data": { - "$id": "5", + "$id": "6", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Welcome", "Description": null, "Behaviors": { - "$id": "6", + "$id": "7", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "7", + "$id": "8", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "8", + "$id": "9", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "9", + "$id": "10", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "10", + "$id": "11", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "11", + "$id": "12", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Welcome! I'll guide you through this course." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": true } } @@ -55,23 +60,23 @@ } }, "Transitions": { - "$id": "12", + "$id": "13", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "13", + "$id": "14", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "14", + "$id": "15", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "15", + "$id": "16", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "16", + "$id": "17", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "17", + "$id": "18", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [] }, @@ -85,21 +90,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "18", + "$id": "19", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "20", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "19", + "$id": "21", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "20", + "$id": "22", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "21", + "$id": "23", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -108,47 +116,47 @@ } }, { - "$id": "22", + "$id": "24", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "23", + "$id": "25", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 237.6, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "25d0ad5d-9c93-4752-af38-e16b628e68c8" }, "Data": { - "$id": "24", + "$id": "26", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Teleport to 1st station", "Description": null, "Behaviors": { - "$id": "25", + "$id": "27", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "26", + "$id": "28", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "27", + "$id": "29", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "28", + "$id": "30", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "29", + "$id": "31", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "30", + "$id": "32", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Teleport to the first station. Press and hold the trigger button to aim at the blue teleportation spot. Release the trigger button to teleport there." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -157,83 +165,101 @@ } }, "Transitions": { - "$id": "31", + "$id": "33", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "32", + "$id": "34", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "33", + "$id": "35", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "34", + "$id": "36", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "35", + "$id": "37", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "36", + "$id": "38", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "37", + "$id": "39", "$type": "VRBuilder.BasicInteraction.Conditions.TeleportCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "38", + "$id": "40", "$type": "VRBuilder.BasicInteraction.Conditions.TeleportCondition+EntityData, VRBuilder.BasicInteraction", + "TeleportationPoints": { + "$id": "41", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ITeleportationProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "42", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "24a78b8a-2097-4e63-8359-6d2c8de50700" + ] + } + }, "TeleportationPoint": { - "$id": "39", + "$id": "43", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ITeleportationProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Teleportation Spot" }, - "Name": "Teleport", "Metadata": null } } ] }, "TargetStep": { - "$id": "40", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 2, + "$id": "44", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "45", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "0aeb439a-dab4-486d-abfd-3acb4a60bb1f" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "41", + "$id": "46", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "42", + "$id": "47", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "43", + "$id": "48", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "44", + "$id": "49", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "45", + "$id": "50", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "46", + "$id": "51", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "47", + "$id": "52", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "48", + "$id": "53", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -241,17 +267,17 @@ ] }, "ChildMetadata": { - "$id": "49", + "$id": "54", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "50", + "$id": "55", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "51", + "$id": "56", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -263,7 +289,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "52", + "$id": "57", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -276,21 +302,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "53", + "$id": "58", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "59", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "54", + "$id": "60", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "55", + "$id": "61", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "56", + "$id": "62", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -299,47 +328,47 @@ } }, { - "$id": "57", + "$id": "63", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "58", + "$id": "64", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 483.2, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "0aeb439a-dab4-486d-abfd-3acb4a60bb1f" }, "Data": { - "$id": "59", + "$id": "65", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Grab Magic Cube", "Description": null, "Behaviors": { - "$id": "60", + "$id": "66", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "61", + "$id": "67", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "62", + "$id": "68", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "63", + "$id": "69", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "64", + "$id": "70", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "65", + "$id": "71", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "First, use the transformer in front of you to make a cube out of the sphere to your left. Grab it by pressing the grab button on your controller. The grab button is on the side of your controller." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -348,94 +377,112 @@ } }, "Transitions": { - "$id": "66", + "$id": "72", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "67", + "$id": "73", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "68", + "$id": "74", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "69", + "$id": "75", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "70", + "$id": "76", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "71", + "$id": "77", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "72", + "$id": "78", "$type": "VRBuilder.BasicInteraction.Conditions.GrabbedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "73", + "$id": "79", "$type": "VRBuilder.BasicInteraction.Conditions.GrabbedCondition+EntityData, VRBuilder.BasicInteraction", "KeepUnlocked": true, + "Targets": { + "$id": "80", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "81", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "d2b11da8-a3fa-4de3-a620-e6951c2b6be7" + ] + } + }, "GrabbableProperty": { - "$id": "74", + "$id": "82", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Magic Cube" }, "IsCompleted": false, - "Name": "Grab Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "75", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 3, + "$id": "83", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "84", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "ebd2c872-448d-4952-869c-7ca1983f0ce3" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "76", + "$id": "85", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "77", + "$id": "86", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "78", + "$id": "87", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "79", + "$id": "88", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "80", + "$id": "89", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "46" + "$ref": "51" }, { - "$ref": "47" + "$ref": "52" }, { - "$ref": "48" + "$ref": "53" } ] }, "ChildMetadata": { - "$id": "81", + "$id": "90", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "82", + "$id": "91", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "83", + "$id": "92", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -447,7 +494,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "84", + "$id": "93", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -460,21 +507,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "85", + "$id": "94", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "95", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "86", + "$id": "96", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "87", + "$id": "97", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "88", + "$id": "98", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -483,47 +533,47 @@ } }, { - "$id": "89", + "$id": "99", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "90", + "$id": "100", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 734.4, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "ebd2c872-448d-4952-869c-7ca1983f0ce3" }, "Data": { - "$id": "91", + "$id": "101", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Place Magic Cube", "Description": null, "Behaviors": { - "$id": "92", + "$id": "102", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "93", + "$id": "103", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "94", + "$id": "104", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "95", + "$id": "105", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "96", + "$id": "106", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "97", + "$id": "107", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Now put it on the highlighted spot on the transformer." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -532,97 +582,126 @@ } }, "Transitions": { - "$id": "98", + "$id": "108", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "99", + "$id": "109", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "100", + "$id": "110", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "101", + "$id": "111", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "102", + "$id": "112", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "103", + "$id": "113", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "104", + "$id": "114", "$type": "VRBuilder.BasicInteraction.Conditions.SnappedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "105", + "$id": "115", "$type": "VRBuilder.BasicInteraction.Conditions.SnappedCondition+EntityData, VRBuilder.BasicInteraction", + "TargetObjects": { + "$id": "116", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnappableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "117", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "d2b11da8-a3fa-4de3-a620-e6951c2b6be7" + ] + } + }, "Target": { - "$id": "106", + "$id": "118", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnappableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Magic Cube" }, + "TargetSnapZone": { + "$id": "119", + "$type": "VRBuilder.Core.SceneObjects.SingleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnapZoneProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "120", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "ab9fac41-ee4f-4e23-819d-2b79f916d92a" + ] + } + }, "ZoneToSnapInto": { - "$id": "107", + "$id": "121", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnapZoneProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Magic Cube_SnapZone" }, - "Name": "Snap Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "108", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 5, + "$id": "122", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "123", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "d77a42a0-ddee-409d-8198-7b6a947b74aa" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "109", + "$id": "124", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "110", + "$id": "125", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "111", + "$id": "126", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "112", + "$id": "127", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "113", + "$id": "128", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "46" + "$ref": "51" }, { - "$ref": "47" + "$ref": "52" }, { - "$ref": "48" + "$ref": "53" } ] }, "ChildMetadata": { - "$id": "114", + "$id": "129", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "115", + "$id": "130", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "116", + "$id": "131", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -634,7 +713,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "117", + "$id": "132", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -647,21 +726,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "118", + "$id": "133", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "134", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "119", + "$id": "135", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "120", + "$id": "136", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "121", + "$id": "137", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -670,88 +752,151 @@ } }, { - "$id": "122", + "$id": "138", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "123", + "$id": "139", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 1259.2, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "8c6dcfb4-9991-46d0-bede-fe71a0fd89d0" }, "Data": { - "$id": "124", + "$id": "140", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Transform Magic Cube", "Description": null, "Behaviors": { - "$id": "125", + "$id": "141", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "126", + "$id": "142", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "127", + "$id": "143", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "128", + "$id": "144", "$type": "VRBuilder.Core.Behaviors.BehaviorSequence, VRBuilder.Core", "Data": { - "$id": "129", + "$id": "145", "$type": "VRBuilder.Core.Behaviors.BehaviorSequence+EntityData, VRBuilder.Core", "PlaysOnRepeat": false, "Behaviors": { - "$id": "130", + "$id": "146", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "131", + "$id": "147", "$type": "VRBuilder.Core.Behaviors.MoveObjectBehavior, VRBuilder.Core", "Data": { - "$id": "132", + "$id": "148", "$type": "VRBuilder.Core.Behaviors.MoveObjectBehavior+EntityData, VRBuilder.Core", + "TargetObject": { + "$id": "149", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "150", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "ab9fac41-ee4f-4e23-819d-2b79f916d92a" + ] + } + }, "Target": { - "$id": "133", + "$id": "151", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "Magic Cube_SnapZone" }, + "FinalPosition": { + "$id": "152", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "153", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "470ff75f-c8ea-4544-b28f-57b8bc54153e" + ] + } + }, "PositionProvider": { - "$id": "134", + "$id": "154", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "TransformerInside" }, "Duration": 1.0, - "Metadata": null, - "Name": "Move Object" + "AnimationCurve": { + "Keys": [ + { + "Time": 0.0, + "Value": 0.0, + "InTangent": 0.0, + "OutTangent": 1.0, + "InWeight": 0.0, + "OutWeight": 0.0, + "WeightedMode": 0 + }, + { + "Time": 1.0, + "Value": 1.0, + "InTangent": 1.0, + "OutTangent": 0.0, + "InWeight": 0.0, + "OutWeight": 0.0, + "WeightedMode": 0 + } + ], + "PreWrapMode": 8, + "PostWrapMode": 8 + }, + "Metadata": null } }, { - "$id": "135", - "$type": "VRBuilder.Core.Behaviors.EnableGameObjectBehavior, VRBuilder.Core", + "$id": "155", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior, VRBuilder.Core", "Data": { - "$id": "136", - "$type": "VRBuilder.Core.Behaviors.EnableGameObjectBehavior+EntityData, VRBuilder.Core", - "Target": { - "$id": "137", - "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", - "UniqueName": "TransformerEnabled" + "$id": "156", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior+EntityData, VRBuilder.Core", + "TargetObjects": { + "$id": "157", + "$type": "VRBuilder.Core.SceneObjects.MultipleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "158", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "8025020b-2365-4872-bdd5-86d9a5633b28" + ] + } }, - "Metadata": null, - "DisableOnDeactivating": false, - "Name": "Enable Object" + "SetEnabled": true, + "RevertOnDeactivation": false, + "Metadata": null } }, { - "$id": "138", + "$id": "159", "$type": "VRBuilder.Core.Behaviors.ScalingBehavior, VRBuilder.Core", "Data": { - "$id": "139", + "$id": "160", "$type": "VRBuilder.Core.Behaviors.ScalingBehavior+EntityData, VRBuilder.Core", + "Targets": { + "$id": "161", + "$type": "VRBuilder.Core.SceneObjects.MultipleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "162", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "0c718adf-56c6-4c29-8257-c8ace06c735d" + ] + } + }, "Target": { - "$id": "140", + "$id": "163", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "Cube" }, @@ -761,18 +906,52 @@ "z": 1.0 }, "Duration": 1.0, - "Metadata": null, - "Name": null + "AnimationCurve": { + "Keys": [ + { + "Time": 0.0, + "Value": 0.0, + "InTangent": 0.0, + "OutTangent": 1.0, + "InWeight": 0.0, + "OutWeight": 0.0, + "WeightedMode": 0 + }, + { + "Time": 1.0, + "Value": 1.0, + "InTangent": 1.0, + "OutTangent": 0.0, + "InWeight": 0.0, + "OutWeight": 0.0, + "WeightedMode": 0 + } + ], + "PreWrapMode": 8, + "PostWrapMode": 8 + }, + "Metadata": null } }, { - "$id": "141", + "$id": "164", "$type": "VRBuilder.Core.Behaviors.ScalingBehavior, VRBuilder.Core", "Data": { - "$id": "142", + "$id": "165", "$type": "VRBuilder.Core.Behaviors.ScalingBehavior+EntityData, VRBuilder.Core", + "Targets": { + "$id": "166", + "$type": "VRBuilder.Core.SceneObjects.MultipleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "167", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "fd2078d6-4d90-469f-873f-098e03179ac0" + ] + } + }, "Target": { - "$id": "143", + "$id": "168", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "Sphere" }, @@ -782,49 +961,123 @@ "z": 0.0 }, "Duration": 1.0, - "Metadata": null, - "Name": null + "AnimationCurve": { + "Keys": [ + { + "Time": 0.0, + "Value": 0.0, + "InTangent": 0.0, + "OutTangent": 1.0, + "InWeight": 0.0, + "OutWeight": 0.0, + "WeightedMode": 0 + }, + { + "Time": 1.0, + "Value": 1.0, + "InTangent": 1.0, + "OutTangent": 0.0, + "InWeight": 0.0, + "OutWeight": 0.0, + "WeightedMode": 0 + } + ], + "PreWrapMode": 8, + "PostWrapMode": 8 + }, + "Metadata": null } }, { - "$id": "144", - "$type": "VRBuilder.Core.Behaviors.DisableGameObjectBehavior, VRBuilder.Core", + "$id": "169", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior, VRBuilder.Core", "Data": { - "$id": "145", - "$type": "VRBuilder.Core.Behaviors.DisableGameObjectBehavior+EntityData, VRBuilder.Core", - "Target": { - "$id": "146", - "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", - "UniqueName": "TransformerEnabled" + "$id": "170", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior+EntityData, VRBuilder.Core", + "TargetObjects": { + "$id": "171", + "$type": "VRBuilder.Core.SceneObjects.MultipleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "172", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "8025020b-2365-4872-bdd5-86d9a5633b28" + ] + } }, - "Metadata": null, - "Name": "Disable Object" + "SetEnabled": false, + "RevertOnDeactivation": false, + "Metadata": null } }, { - "$id": "147", + "$id": "173", "$type": "VRBuilder.Core.Behaviors.MoveObjectBehavior, VRBuilder.Core", "Data": { - "$id": "148", + "$id": "174", "$type": "VRBuilder.Core.Behaviors.MoveObjectBehavior+EntityData, VRBuilder.Core", + "TargetObject": { + "$id": "175", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "176", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "ab9fac41-ee4f-4e23-819d-2b79f916d92a" + ] + } + }, "Target": { - "$id": "149", + "$id": "177", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "Magic Cube_SnapZone" }, + "FinalPosition": { + "$id": "178", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "179", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "80b6aede-4adc-4765-b8ec-1cd1bd3c03ae" + ] + } + }, "PositionProvider": { - "$id": "150", + "$id": "180", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "TransformerOutside" }, "Duration": 1.0, - "Metadata": null, - "Name": "Move Object" + "AnimationCurve": { + "Keys": [ + { + "Time": 0.0, + "Value": 0.0, + "InTangent": 0.0, + "OutTangent": 1.0, + "InWeight": 0.0, + "OutWeight": 0.0, + "WeightedMode": 0 + }, + { + "Time": 1.0, + "Value": 1.0, + "InTangent": 1.0, + "OutTangent": 0.0, + "InWeight": 0.0, + "OutWeight": 0.0, + "WeightedMode": 0 + } + ], + "PreWrapMode": 8, + "PostWrapMode": 8 + }, + "Metadata": null } } ] }, - "Name": "Sequence", "IsBlocking": true } } @@ -833,23 +1086,23 @@ } }, "Transitions": { - "$id": "151", + "$id": "181", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "152", + "$id": "182", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "153", + "$id": "183", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "154", + "$id": "184", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "155", + "$id": "185", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "156", + "$id": "186", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [] }, @@ -857,36 +1110,36 @@ "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "157", + "$id": "187", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "158", + "$id": "188", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "159", + "$id": "189", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "160", + "$id": "190", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "161", + "$id": "191", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "162", + "$id": "192", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "163", + "$id": "193", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "164", + "$id": "194", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -894,13 +1147,13 @@ ] }, "ChildMetadata": { - "$id": "165", + "$id": "195", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [] } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "166", + "$id": "196", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -913,21 +1166,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "167", + "$id": "197", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "198", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "168", + "$id": "199", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "169", + "$id": "200", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "170", + "$id": "201", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -936,47 +1192,47 @@ } }, { - "$id": "171", + "$id": "202", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "172", + "$id": "203", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 973.6, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "d77a42a0-ddee-409d-8198-7b6a947b74aa" }, "Data": { - "$id": "173", + "$id": "204", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Activate Transformer", "Description": null, "Behaviors": { - "$id": "174", + "$id": "205", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "175", + "$id": "206", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "176", + "$id": "207", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "177", + "$id": "208", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "178", + "$id": "209", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "179", + "$id": "210", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Touch the panel to activate the transformer." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -985,84 +1241,102 @@ } }, "Transitions": { - "$id": "180", + "$id": "211", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "181", + "$id": "212", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "182", + "$id": "213", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "183", + "$id": "214", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "184", + "$id": "215", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "185", + "$id": "216", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "186", + "$id": "217", "$type": "VRBuilder.BasicInteraction.Conditions.TouchedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "187", + "$id": "218", "$type": "VRBuilder.BasicInteraction.Conditions.TouchedCondition+EntityData, VRBuilder.BasicInteraction", + "TouchableProperties": { + "$id": "219", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ITouchableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "220", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "f45cbaab-a85e-4f7a-a9ec-d84b156589f3" + ] + } + }, "TouchableProperty": { - "$id": "188", + "$id": "221", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ITouchableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "TouchPanel" }, "IsCompleted": false, - "Name": "Touch Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "189", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 4, + "$id": "222", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "223", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "8c6dcfb4-9991-46d0-bede-fe71a0fd89d0" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "190", + "$id": "224", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "191", + "$id": "225", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "192", + "$id": "226", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "193", + "$id": "227", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "194", + "$id": "228", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "195", + "$id": "229", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "196", + "$id": "230", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "197", + "$id": "231", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -1070,17 +1344,17 @@ ] }, "ChildMetadata": { - "$id": "198", + "$id": "232", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "199", + "$id": "233", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "200", + "$id": "234", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -1092,7 +1366,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "201", + "$id": "235", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -1105,21 +1379,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "202", + "$id": "236", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "237", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "203", + "$id": "238", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "204", + "$id": "239", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "205", + "$id": "240", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -1128,67 +1405,86 @@ } }, { - "$id": "206", + "$id": "241", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "207", + "$id": "242", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 200.0, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "bda68556-7bc8-4028-8f4d-21347bfdfc96" }, "Data": { - "$id": "208", + "$id": "243", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Grab cube", "Description": null, "Behaviors": { - "$id": "209", + "$id": "244", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "210", + "$id": "245", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "211", + "$id": "246", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "212", + "$id": "247", "$type": "VRBuilder.BasicInteraction.Behaviors.UnsnapBehavior, VRBuilder.BasicInteraction", "Data": { - "$id": "213", + "$id": "248", "$type": "VRBuilder.BasicInteraction.Behaviors.UnsnapBehavior+EntityData, VRBuilder.BasicInteraction", + "TargetObject": { + "$id": "249", + "$type": "VRBuilder.Core.SceneObjects.SingleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnappableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "250", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "d2b11da8-a3fa-4de3-a620-e6951c2b6be7" + ] + } + }, "SnappedObject": { - "$id": "214", + "$id": "251", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnappableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Magic Cube" }, + "TargetSnapZone": { + "$id": "252", + "$type": "VRBuilder.Core.SceneObjects.SingleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnapZoneProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "253", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [] + } + }, "SnapZone": { - "$id": "215", + "$id": "254", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnapZoneProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "" }, - "Metadata": null, - "Name": "Unsnap" + "Metadata": null } }, { - "$id": "216", + "$id": "255", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "217", + "$id": "256", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "218", + "$id": "257", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Take the cube and teleport to the next station." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -1197,94 +1493,112 @@ } }, "Transitions": { - "$id": "219", + "$id": "258", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "220", + "$id": "259", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "221", + "$id": "260", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "222", + "$id": "261", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "223", + "$id": "262", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "224", + "$id": "263", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "225", + "$id": "264", "$type": "VRBuilder.BasicInteraction.Conditions.GrabbedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "226", + "$id": "265", "$type": "VRBuilder.BasicInteraction.Conditions.GrabbedCondition+EntityData, VRBuilder.BasicInteraction", "KeepUnlocked": true, + "Targets": { + "$id": "266", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "267", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "d2b11da8-a3fa-4de3-a620-e6951c2b6be7" + ] + } + }, "GrabbableProperty": { - "$id": "227", + "$id": "268", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Magic Cube" }, "IsCompleted": false, - "Name": "Grab Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "228", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 7, + "$id": "269", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "270", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "2728332f-cb82-4f74-bfb1-54c510e27abb" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "229", + "$id": "271", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "230", + "$id": "272", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "231", + "$id": "273", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "232", + "$id": "274", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "233", + "$id": "275", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "46" + "$ref": "51" }, { - "$ref": "47" + "$ref": "52" }, { - "$ref": "48" + "$ref": "53" } ] }, "ChildMetadata": { - "$id": "234", + "$id": "276", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "235", + "$id": "277", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "236", + "$id": "278", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -1296,7 +1610,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "237", + "$id": "279", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -1309,21 +1623,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "238", + "$id": "280", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "281", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "239", + "$id": "282", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "240", + "$id": "283", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "241", + "$id": "284", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -1332,113 +1649,132 @@ } }, { - "$id": "242", + "$id": "285", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "243", + "$id": "286", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 445.6, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "2728332f-cb82-4f74-bfb1-54c510e27abb" }, "Data": { - "$id": "244", + "$id": "287", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Teleport to slicer", "Description": null, "Behaviors": { - "$id": "245", + "$id": "288", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "246", + "$id": "289", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "247", + "$id": "290", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [] } } }, "Transitions": { - "$id": "248", + "$id": "291", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "249", + "$id": "292", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "250", + "$id": "293", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "251", + "$id": "294", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "252", + "$id": "295", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "253", + "$id": "296", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "254", + "$id": "297", "$type": "VRBuilder.BasicInteraction.Conditions.TeleportCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "255", + "$id": "298", "$type": "VRBuilder.BasicInteraction.Conditions.TeleportCondition+EntityData, VRBuilder.BasicInteraction", + "TeleportationPoints": { + "$id": "299", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ITeleportationProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "300", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "7fcf9fbb-9148-4236-9f6c-c417d678a54c" + ] + } + }, "TeleportationPoint": { - "$id": "256", + "$id": "301", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ITeleportationProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Teleportation Spot_1" }, - "Name": "Teleport", "Metadata": null } } ] }, "TargetStep": { - "$id": "257", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 8, + "$id": "302", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "303", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "8fe7ae3d-3888-44ac-86f3-dd68b59b844d" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "258", + "$id": "304", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "259", + "$id": "305", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "260", + "$id": "306", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "261", + "$id": "307", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "262", + "$id": "308", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "263", + "$id": "309", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "264", + "$id": "310", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "265", + "$id": "311", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -1446,17 +1782,17 @@ ] }, "ChildMetadata": { - "$id": "266", + "$id": "312", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "267", + "$id": "313", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "268", + "$id": "314", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -1468,7 +1804,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "269", + "$id": "315", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -1478,83 +1814,101 @@ } }, { - "$id": "270", + "$id": "316", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "271", + "$id": "317", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "272", + "$id": "318", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "273", + "$id": "319", "$type": "VRBuilder.BasicInteraction.Conditions.ReleasedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "274", + "$id": "320", "$type": "VRBuilder.BasicInteraction.Conditions.ReleasedCondition+EntityData, VRBuilder.BasicInteraction", + "GrabbableProperties": { + "$id": "321", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "322", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "d2b11da8-a3fa-4de3-a620-e6951c2b6be7" + ] + } + }, "GrabbableProperty": { - "$id": "275", + "$id": "323", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Magic Cube" }, "IsCompleted": false, - "Name": "Release Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "276", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 6, + "$id": "324", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "325", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "bda68556-7bc8-4028-8f4d-21347bfdfc96" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "277", + "$id": "326", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "278", + "$id": "327", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "279", + "$id": "328", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "280", + "$id": "329", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "281", + "$id": "330", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "263" + "$ref": "309" }, { - "$ref": "264" + "$ref": "310" }, { - "$ref": "265" + "$ref": "311" } ] }, "ChildMetadata": { - "$id": "282", + "$id": "331", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "283", + "$id": "332", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "284", + "$id": "333", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -1566,7 +1920,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "285", + "$id": "334", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -1579,21 +1933,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "286", + "$id": "335", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "336", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "287", + "$id": "337", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "288", + "$id": "338", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "289", + "$id": "339", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 1 } @@ -1602,47 +1959,47 @@ } }, { - "$id": "290", + "$id": "340", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "291", + "$id": "341", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 763.2, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "8fe7ae3d-3888-44ac-86f3-dd68b59b844d" }, "Data": { - "$id": "292", + "$id": "342", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Place cube in working area", "Description": null, "Behaviors": { - "$id": "293", + "$id": "343", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "294", + "$id": "344", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "295", + "$id": "345", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "296", + "$id": "346", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "297", + "$id": "347", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "298", + "$id": "348", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Place the cube on the table." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -1651,88 +2008,117 @@ } }, "Transitions": { - "$id": "299", + "$id": "349", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "300", + "$id": "350", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "301", + "$id": "351", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "302", + "$id": "352", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "303", + "$id": "353", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "304", + "$id": "354", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "305", + "$id": "355", "$type": "VRBuilder.BasicInteraction.Conditions.SnappedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "306", + "$id": "356", "$type": "VRBuilder.BasicInteraction.Conditions.SnappedCondition+EntityData, VRBuilder.BasicInteraction", + "TargetObjects": { + "$id": "357", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnappableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "358", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "d2b11da8-a3fa-4de3-a620-e6951c2b6be7" + ] + } + }, "Target": { - "$id": "307", + "$id": "359", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnappableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Magic Cube" }, + "TargetSnapZone": { + "$id": "360", + "$type": "VRBuilder.Core.SceneObjects.SingleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnapZoneProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "361", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "063b8249-497d-475c-aac9-8eb841ddc61e" + ] + } + }, "ZoneToSnapInto": { - "$id": "308", + "$id": "362", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnapZoneProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Magic Cube_SnapZone_1" }, - "Name": "Snap Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "309", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 9, + "$id": "363", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "364", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "7d10b876-f270-4757-9d10-0e76528c64db" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "310", + "$id": "365", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "311", + "$id": "366", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "312", + "$id": "367", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "313", + "$id": "368", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "314", + "$id": "369", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "315", + "$id": "370", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "316", + "$id": "371", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "317", + "$id": "372", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -1740,17 +2126,17 @@ ] }, "ChildMetadata": { - "$id": "318", + "$id": "373", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "319", + "$id": "374", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "320", + "$id": "375", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -1762,7 +2148,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "321", + "$id": "376", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -1772,83 +2158,101 @@ } }, { - "$id": "322", + "$id": "377", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "323", + "$id": "378", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "324", + "$id": "379", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "325", + "$id": "380", "$type": "VRBuilder.BasicInteraction.Conditions.ReleasedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "326", + "$id": "381", "$type": "VRBuilder.BasicInteraction.Conditions.ReleasedCondition+EntityData, VRBuilder.BasicInteraction", + "GrabbableProperties": { + "$id": "382", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "383", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "d2b11da8-a3fa-4de3-a620-e6951c2b6be7" + ] + } + }, "GrabbableProperty": { - "$id": "327", + "$id": "384", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Magic Cube" }, "IsCompleted": false, - "Name": "Release Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "328", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 10, + "$id": "385", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "386", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "67e68ce4-5a29-48b8-b412-678a602975dc" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "329", + "$id": "387", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "330", + "$id": "388", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "331", + "$id": "389", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "332", + "$id": "390", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "333", + "$id": "391", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "315" + "$ref": "370" }, { - "$ref": "316" + "$ref": "371" }, { - "$ref": "317" + "$ref": "372" } ] }, "ChildMetadata": { - "$id": "334", + "$id": "392", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "335", + "$id": "393", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "336", + "$id": "394", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -1860,7 +2264,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "337", + "$id": "395", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -1873,21 +2277,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "338", + "$id": "396", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "397", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "339", + "$id": "398", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "340", + "$id": "399", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "341", + "$id": "400", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -1896,47 +2303,47 @@ } }, { - "$id": "342", + "$id": "401", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "343", + "$id": "402", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 1058.4, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "7d10b876-f270-4757-9d10-0e76528c64db" }, "Data": { - "$id": "344", + "$id": "403", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Pick up tool", "Description": null, "Behaviors": { - "$id": "345", + "$id": "404", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "346", + "$id": "405", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "347", + "$id": "406", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "348", + "$id": "407", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "349", + "$id": "408", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "350", + "$id": "409", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Now you need to cut this cube in two pieces. First, pick up the tool to your right." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -1945,94 +2352,112 @@ } }, "Transitions": { - "$id": "351", + "$id": "410", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "352", + "$id": "411", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "353", + "$id": "412", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "354", + "$id": "413", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "355", + "$id": "414", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "356", + "$id": "415", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "357", + "$id": "416", "$type": "VRBuilder.BasicInteraction.Conditions.GrabbedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "358", + "$id": "417", "$type": "VRBuilder.BasicInteraction.Conditions.GrabbedCondition+EntityData, VRBuilder.BasicInteraction", "KeepUnlocked": true, + "Targets": { + "$id": "418", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "419", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "aac0efd9-1949-4ec3-9807-2df899788116" + ] + } + }, "GrabbableProperty": { - "$id": "359", + "$id": "420", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "LightSabre" }, "IsCompleted": false, - "Name": "Grab Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "360", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 11, + "$id": "421", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "422", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "da8e6b38-2e19-4c3e-befd-5b0bd2f6b4d1" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "361", + "$id": "423", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "362", + "$id": "424", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "363", + "$id": "425", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "364", + "$id": "426", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "365", + "$id": "427", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "315" + "$ref": "370" }, { - "$ref": "316" + "$ref": "371" }, { - "$ref": "317" + "$ref": "372" } ] }, "ChildMetadata": { - "$id": "366", + "$id": "428", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "367", + "$id": "429", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "368", + "$id": "430", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -2044,7 +2469,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "369", + "$id": "431", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -2057,21 +2482,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "370", + "$id": "432", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "433", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "371", + "$id": "434", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "372", + "$id": "435", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "373", + "$id": "436", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -2080,47 +2508,47 @@ } }, { - "$id": "374", + "$id": "437", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "375", + "$id": "438", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 763.2, "y": 145.6 }, - "StepType": "default" + "StepType": "default", + "Guid": "67e68ce4-5a29-48b8-b412-678a602975dc" }, "Data": { - "$id": "376", + "$id": "439", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Misplaced magic cube", "Description": null, "Behaviors": { - "$id": "377", + "$id": "440", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "378", + "$id": "441", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "379", + "$id": "442", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "380", + "$id": "443", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "381", + "$id": "444", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "382", + "$id": "445", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Pick up the cube again and place it on the table." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -2129,94 +2557,112 @@ } }, "Transitions": { - "$id": "383", + "$id": "446", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "384", + "$id": "447", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "385", + "$id": "448", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "386", + "$id": "449", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "387", + "$id": "450", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "388", + "$id": "451", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "389", + "$id": "452", "$type": "VRBuilder.BasicInteraction.Conditions.GrabbedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "390", + "$id": "453", "$type": "VRBuilder.BasicInteraction.Conditions.GrabbedCondition+EntityData, VRBuilder.BasicInteraction", "KeepUnlocked": true, + "Targets": { + "$id": "454", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "455", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "d2b11da8-a3fa-4de3-a620-e6951c2b6be7" + ] + } + }, "GrabbableProperty": { - "$id": "391", + "$id": "456", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Magic Cube" }, "IsCompleted": false, - "Name": "Grab Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "392", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 8, + "$id": "457", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "458", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "8fe7ae3d-3888-44ac-86f3-dd68b59b844d" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "393", + "$id": "459", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "394", + "$id": "460", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "395", + "$id": "461", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "396", + "$id": "462", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "397", + "$id": "463", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "315" + "$ref": "370" }, { - "$ref": "316" + "$ref": "371" }, { - "$ref": "317" + "$ref": "372" } ] }, "ChildMetadata": { - "$id": "398", + "$id": "464", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "399", + "$id": "465", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "400", + "$id": "466", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -2228,7 +2674,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "401", + "$id": "467", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -2241,21 +2687,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "402", + "$id": "468", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "469", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "403", + "$id": "470", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "404", + "$id": "471", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "405", + "$id": "472", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -2264,47 +2713,47 @@ } }, { - "$id": "406", + "$id": "473", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "407", + "$id": "474", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 1291.2, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "da8e6b38-2e19-4c3e-befd-5b0bd2f6b4d1" }, "Data": { - "$id": "408", + "$id": "475", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Use tool", "Description": null, "Behaviors": { - "$id": "409", + "$id": "476", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "410", + "$id": "477", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "411", + "$id": "478", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "412", + "$id": "479", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "413", + "$id": "480", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "414", + "$id": "481", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "While holding the tool, you can use it by pressing the trigger button." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -2313,93 +2762,111 @@ } }, "Transitions": { - "$id": "415", + "$id": "482", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "416", + "$id": "483", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "417", + "$id": "484", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "418", + "$id": "485", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "419", + "$id": "486", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "420", + "$id": "487", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "421", + "$id": "488", "$type": "VRBuilder.BasicInteraction.Conditions.UsedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "422", + "$id": "489", "$type": "VRBuilder.BasicInteraction.Conditions.UsedCondition+EntityData, VRBuilder.BasicInteraction", + "UsableObjects": { + "$id": "490", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IUsableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "491", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "aac0efd9-1949-4ec3-9807-2df899788116" + ] + } + }, "UsableProperty": { - "$id": "423", + "$id": "492", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IUsableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "LightSabre" }, "IsCompleted": false, - "Name": "Use Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "424", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 12, + "$id": "493", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "494", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "06275921-c4b2-4381-8631-283277ce0811" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "425", + "$id": "495", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "426", + "$id": "496", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "427", + "$id": "497", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "428", + "$id": "498", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "429", + "$id": "499", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "315" + "$ref": "370" }, { - "$ref": "316" + "$ref": "371" }, { - "$ref": "317" + "$ref": "372" } ] }, "ChildMetadata": { - "$id": "430", + "$id": "500", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "431", + "$id": "501", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "432", + "$id": "502", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -2411,7 +2878,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "433", + "$id": "503", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -2424,21 +2891,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "434", + "$id": "504", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "505", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "435", + "$id": "506", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "436", + "$id": "507", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "437", + "$id": "508", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 1 } @@ -2447,63 +2917,69 @@ } }, { - "$id": "438", + "$id": "509", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "439", + "$id": "510", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 1605.6, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "06275921-c4b2-4381-8631-283277ce0811" }, "Data": { - "$id": "440", + "$id": "511", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Slice along the red highlight", "Description": null, "Behaviors": { - "$id": "441", + "$id": "512", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "442", + "$id": "513", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "443", + "$id": "514", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "444", - "$type": "VRBuilder.Core.Behaviors.EnableGameObjectBehavior, VRBuilder.Core", + "$id": "515", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior, VRBuilder.Core", "Data": { - "$id": "445", - "$type": "VRBuilder.Core.Behaviors.EnableGameObjectBehavior+EntityData, VRBuilder.Core", - "Target": { - "$id": "446", - "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", - "UniqueName": "Slicing highlight" + "$id": "516", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior+EntityData, VRBuilder.Core", + "TargetObjects": { + "$id": "517", + "$type": "VRBuilder.Core.SceneObjects.MultipleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "518", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "d7dd3185-de39-4915-8651-d945a022a74e" + ] + } }, - "Metadata": null, - "DisableOnDeactivating": false, - "Name": "Enable Object" + "SetEnabled": true, + "RevertOnDeactivation": false, + "Metadata": null } }, { - "$id": "447", + "$id": "519", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "448", + "$id": "520", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "449", + "$id": "521", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Well done! Now slice the cube by moving the blade in the highlighted area." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -2512,42 +2988,63 @@ } }, "Transitions": { - "$id": "450", + "$id": "522", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "451", + "$id": "523", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "452", + "$id": "524", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "453", + "$id": "525", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "454", + "$id": "526", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "455", + "$id": "527", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "456", + "$id": "528", "$type": "VRBuilder.Core.Conditions.ObjectInColliderCondition, VRBuilder.Core", "Data": { - "$id": "457", + "$id": "529", "$type": "VRBuilder.Core.Conditions.ObjectInColliderCondition+EntityData, VRBuilder.Core", + "TargetObjects": { + "$id": "530", + "$type": "VRBuilder.Core.SceneObjects.MultipleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "531", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "90815042-3e05-4f7e-8be3-8761d17a0b03" + ] + } + }, "TargetObject": { - "$id": "458", + "$id": "532", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "Light" }, + "TriggerObject": { + "$id": "533", + "$type": "VRBuilder.Core.SceneObjects.SingleScenePropertyReference`1[[VRBuilder.Core.Properties.ColliderWithTriggerProperty, VRBuilder.Core]], VRBuilder.Core", + "guids": { + "$id": "534", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "d7dd3185-de39-4915-8651-d945a022a74e" + ] + } + }, "TriggerProperty": { - "$id": "459", + "$id": "535", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.Core.Properties.ColliderWithTriggerProperty, VRBuilder.Core]], VRBuilder.Core", "UniqueName": "Slicing highlight" }, - "Name": "Move Object into Collider", "RequiredTimeInside": 0.1, "Metadata": null } @@ -2555,55 +3052,63 @@ ] }, "TargetStep": { - "$id": "460", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 13, + "$id": "536", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "537", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "0777fb7c-03de-4ad1-a567-8590b431203f" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "461", + "$id": "538", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "462", + "$id": "539", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "463", + "$id": "540", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "464", + "$id": "541", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "465", + "$id": "542", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "315" + "$ref": "370" }, { - "$ref": "316" + "$ref": "371" }, { - "$ref": "317" + "$ref": "372" } ] }, "ChildMetadata": { - "$id": "466", + "$id": "543", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "467", + "$id": "544", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "468", + "$id": "545", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -2615,7 +3120,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "469", + "$id": "546", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -2625,74 +3130,92 @@ } }, { - "$id": "470", + "$id": "547", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "471", + "$id": "548", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "472", + "$id": "549", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "473", + "$id": "550", "$type": "VRBuilder.BasicInteraction.Conditions.ReleasedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "474", + "$id": "551", "$type": "VRBuilder.BasicInteraction.Conditions.ReleasedCondition+EntityData, VRBuilder.BasicInteraction", + "GrabbableProperties": { + "$id": "552", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "553", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "aac0efd9-1949-4ec3-9807-2df899788116" + ] + } + }, "GrabbableProperty": { - "$id": "475", + "$id": "554", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "LightSabre" }, "IsCompleted": false, - "Name": "Release Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "476", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 11, + "$id": "555", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "556", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "da8e6b38-2e19-4c3e-befd-5b0bd2f6b4d1" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "477", + "$id": "557", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "478", + "$id": "558", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "479", + "$id": "559", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "480", + "$id": "560", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "481", + "$id": "561", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "482", + "$id": "562", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "483", + "$id": "563", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "484", + "$id": "564", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -2700,17 +3223,17 @@ ] }, "ChildMetadata": { - "$id": "485", + "$id": "565", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "486", + "$id": "566", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "487", + "$id": "567", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -2722,7 +3245,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "488", + "$id": "568", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -2735,72 +3258,130 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "489", + "$id": "569", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "490", + "$id": "570", "$type": "VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core", "Target": { - "$id": "491", + "$id": "571", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "LightSabre" }, + "TargetObject": { + "$id": "572", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "573", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "aac0efd9-1949-4ec3-9807-2df899788116" + ] + } + }, "Type": "VRBuilder.XRInteraction.Properties.UsableProperty, VRBuilder.XRInteraction, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "492", + "$id": "574", "$type": "VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core", "Target": { - "$id": "493", + "$id": "575", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "LightSabre" }, + "TargetObject": { + "$id": "576", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "577", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "aac0efd9-1949-4ec3-9807-2df899788116" + ] + } + }, "Type": "VRBuilder.XRInteraction.Properties.GrabbableProperty, VRBuilder.XRInteraction, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "494", + "$id": "578", "$type": "VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core", "Target": { - "$id": "495", + "$id": "579", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "LightSabre" }, + "TargetObject": { + "$id": "580", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "581", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "aac0efd9-1949-4ec3-9807-2df899788116" + ] + } + }, "Type": "VRBuilder.XRInteraction.Properties.TouchableProperty, VRBuilder.XRInteraction, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "496", + "$id": "582", "$type": "VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core", "Target": { - "$id": "497", + "$id": "583", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "Magic Cube" }, + "TargetObject": { + "$id": "584", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "585", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "d2b11da8-a3fa-4de3-a620-e6951c2b6be7" + ] + } + }, "Type": "VRBuilder.XRInteraction.Properties.GrabbableProperty, VRBuilder.XRInteraction, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "498", + "$id": "586", "$type": "VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core", "Target": { - "$id": "499", + "$id": "587", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "Magic Cube" }, + "TargetObject": { + "$id": "588", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "589", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "d2b11da8-a3fa-4de3-a620-e6951c2b6be7" + ] + } + }, "Type": "VRBuilder.XRInteraction.Properties.TouchableProperty, VRBuilder.XRInteraction, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } ] }, + "TagsToUnlock": { + "$id": "590", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "500", + "$id": "591", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "501", + "$id": "592", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "502", + "$id": "593", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -2809,109 +3390,135 @@ } }, { - "$id": "503", + "$id": "594", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "504", + "$id": "595", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 1874.4, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "0777fb7c-03de-4ad1-a567-8590b431203f" }, "Data": { - "$id": "505", + "$id": "596", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Cube is sliced", "Description": null, "Behaviors": { - "$id": "506", + "$id": "597", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "507", + "$id": "598", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "508", + "$id": "599", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "509", - "$type": "VRBuilder.Core.Behaviors.DisableGameObjectBehavior, VRBuilder.Core", + "$id": "600", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior, VRBuilder.Core", "Data": { - "$id": "510", - "$type": "VRBuilder.Core.Behaviors.DisableGameObjectBehavior+EntityData, VRBuilder.Core", - "Target": { - "$id": "511", - "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", - "UniqueName": "Slicing highlight" + "$id": "601", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior+EntityData, VRBuilder.Core", + "TargetObjects": { + "$id": "602", + "$type": "VRBuilder.Core.SceneObjects.MultipleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "603", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "d7dd3185-de39-4915-8651-d945a022a74e" + ] + } }, - "Metadata": null, - "Name": "Disable Object" + "SetEnabled": false, + "RevertOnDeactivation": false, + "Metadata": null } }, { - "$id": "512", - "$type": "VRBuilder.Core.Behaviors.DisableGameObjectBehavior, VRBuilder.Core", + "$id": "604", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior, VRBuilder.Core", "Data": { - "$id": "513", - "$type": "VRBuilder.Core.Behaviors.DisableGameObjectBehavior+EntityData, VRBuilder.Core", - "Target": { - "$id": "514", - "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", - "UniqueName": "Magic Cube" + "$id": "605", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior+EntityData, VRBuilder.Core", + "TargetObjects": { + "$id": "606", + "$type": "VRBuilder.Core.SceneObjects.MultipleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "607", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "d2b11da8-a3fa-4de3-a620-e6951c2b6be7" + ] + } }, - "Metadata": null, - "Name": "Disable Object" + "SetEnabled": false, + "RevertOnDeactivation": false, + "Metadata": null } }, { - "$id": "515", - "$type": "VRBuilder.Core.Behaviors.EnableGameObjectBehavior, VRBuilder.Core", + "$id": "608", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior, VRBuilder.Core", "Data": { - "$id": "516", - "$type": "VRBuilder.Core.Behaviors.EnableGameObjectBehavior+EntityData, VRBuilder.Core", - "Target": { - "$id": "517", - "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", - "UniqueName": "Sliced Cube (1)" + "$id": "609", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior+EntityData, VRBuilder.Core", + "TargetObjects": { + "$id": "610", + "$type": "VRBuilder.Core.SceneObjects.MultipleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "611", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "dadfd54b-6114-46c5-b1ce-ff6d13ef92cb" + ] + } }, - "Metadata": null, - "DisableOnDeactivating": false, - "Name": "Enable Object" + "SetEnabled": true, + "RevertOnDeactivation": false, + "Metadata": null } }, { - "$id": "518", - "$type": "VRBuilder.Core.Behaviors.EnableGameObjectBehavior, VRBuilder.Core", + "$id": "612", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior, VRBuilder.Core", "Data": { - "$id": "519", - "$type": "VRBuilder.Core.Behaviors.EnableGameObjectBehavior+EntityData, VRBuilder.Core", - "Target": { - "$id": "520", - "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", - "UniqueName": "Sliced Cube (2)" + "$id": "613", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior+EntityData, VRBuilder.Core", + "TargetObjects": { + "$id": "614", + "$type": "VRBuilder.Core.SceneObjects.MultipleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "615", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "f2830878-3f69-4ee4-98bc-a9b93f030cb7" + ] + } }, - "Metadata": null, - "DisableOnDeactivating": false, - "Name": "Enable Object" + "SetEnabled": true, + "RevertOnDeactivation": false, + "Metadata": null } }, { - "$id": "521", + "$id": "616", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "522", + "$id": "617", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "523", + "$id": "618", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Great. Release the tool and it will go back to its original position." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -2920,84 +3527,102 @@ } }, "Transitions": { - "$id": "524", + "$id": "619", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "525", + "$id": "620", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "526", + "$id": "621", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "527", + "$id": "622", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "528", + "$id": "623", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "529", + "$id": "624", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "530", + "$id": "625", "$type": "VRBuilder.BasicInteraction.Conditions.ReleasedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "531", + "$id": "626", "$type": "VRBuilder.BasicInteraction.Conditions.ReleasedCondition+EntityData, VRBuilder.BasicInteraction", + "GrabbableProperties": { + "$id": "627", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "628", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "aac0efd9-1949-4ec3-9807-2df899788116" + ] + } + }, "GrabbableProperty": { - "$id": "532", + "$id": "629", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "LightSabre" }, "IsCompleted": false, - "Name": "Release Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "533", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 14, + "$id": "630", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "631", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "6e61534a-ba60-4b28-a181-29c9f66b6cbc" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "534", + "$id": "632", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "535", + "$id": "633", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "536", + "$id": "634", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "537", + "$id": "635", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "538", + "$id": "636", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "539", + "$id": "637", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "540", + "$id": "638", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "541", + "$id": "639", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -3005,17 +3630,17 @@ ] }, "ChildMetadata": { - "$id": "542", + "$id": "640", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "543", + "$id": "641", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "544", + "$id": "642", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -3027,7 +3652,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "545", + "$id": "643", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -3040,52 +3665,88 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "546", + "$id": "644", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "547", + "$id": "645", "$type": "VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core", "Target": { - "$id": "548", + "$id": "646", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "LightSabre" }, + "TargetObject": { + "$id": "647", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "648", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "aac0efd9-1949-4ec3-9807-2df899788116" + ] + } + }, "Type": "VRBuilder.XRInteraction.Properties.GrabbableProperty, VRBuilder.XRInteraction, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "549", + "$id": "649", "$type": "VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core", "Target": { - "$id": "550", + "$id": "650", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "LightSabre" }, + "TargetObject": { + "$id": "651", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "652", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "aac0efd9-1949-4ec3-9807-2df899788116" + ] + } + }, "Type": "VRBuilder.XRInteraction.Properties.UsableProperty, VRBuilder.XRInteraction, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "551", + "$id": "653", "$type": "VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core", "Target": { - "$id": "552", + "$id": "654", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "LightSabre" }, + "TargetObject": { + "$id": "655", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "656", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "aac0efd9-1949-4ec3-9807-2df899788116" + ] + } + }, "Type": "VRBuilder.XRInteraction.Properties.TouchableProperty, VRBuilder.XRInteraction, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } ] }, + "TagsToUnlock": { + "$id": "657", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "553", + "$id": "658", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "554", + "$id": "659", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "555", + "$id": "660", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -3094,51 +3755,97 @@ } }, { - "$id": "556", + "$id": "661", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "557", + "$id": "662", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 2105.6, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "6e61534a-ba60-4b28-a181-29c9f66b6cbc" }, "Data": { - "$id": "558", + "$id": "663", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Move tool", "Description": null, "Behaviors": { - "$id": "559", + "$id": "664", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "560", + "$id": "665", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "561", + "$id": "666", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "562", + "$id": "667", "$type": "VRBuilder.Core.Behaviors.MoveObjectBehavior, VRBuilder.Core", "Data": { - "$id": "563", + "$id": "668", "$type": "VRBuilder.Core.Behaviors.MoveObjectBehavior+EntityData, VRBuilder.Core", + "TargetObject": { + "$id": "669", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "670", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "aac0efd9-1949-4ec3-9807-2df899788116" + ] + } + }, "Target": { - "$id": "564", + "$id": "671", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "LightSabre" }, + "FinalPosition": { + "$id": "672", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "673", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "4c9ba9c4-a90c-45cb-a73a-8f0d59cbc130" + ] + } + }, "PositionProvider": { - "$id": "565", + "$id": "674", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "LightSabre Origin" }, "Duration": 1.0, - "Metadata": null, - "Name": "Move Object" + "AnimationCurve": { + "Keys": [ + { + "Time": 0.0, + "Value": 0.0, + "InTangent": 0.0, + "OutTangent": 1.0, + "InWeight": 0.0, + "OutWeight": 0.0, + "WeightedMode": 0 + }, + { + "Time": 1.0, + "Value": 1.0, + "InTangent": 1.0, + "OutTangent": 0.0, + "InWeight": 0.0, + "OutWeight": 0.0, + "WeightedMode": 0 + } + ], + "PreWrapMode": 8, + "PostWrapMode": 8 + }, + "Metadata": null } } ] @@ -3146,23 +3853,23 @@ } }, "Transitions": { - "$id": "566", + "$id": "675", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "567", + "$id": "676", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "568", + "$id": "677", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "569", + "$id": "678", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "570", + "$id": "679", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "571", + "$id": "680", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [] }, @@ -3170,36 +3877,36 @@ "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "572", + "$id": "681", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "573", + "$id": "682", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "574", + "$id": "683", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "575", + "$id": "684", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "576", + "$id": "685", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "577", + "$id": "686", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "578", + "$id": "687", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "579", + "$id": "688", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -3207,13 +3914,13 @@ ] }, "ChildMetadata": { - "$id": "580", + "$id": "689", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [] } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "581", + "$id": "690", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -3226,21 +3933,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "582", + "$id": "691", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "692", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "583", + "$id": "693", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "584", + "$id": "694", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "585", + "$id": "695", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -3249,47 +3959,47 @@ } }, { - "$id": "586", + "$id": "696", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "587", + "$id": "697", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 544.0, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "3fe9edc1-423e-4c5d-a7f7-66244577a007" }, "Data": { - "$id": "588", + "$id": "698", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Place 1st step", "Description": null, "Behaviors": { - "$id": "589", + "$id": "699", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "590", + "$id": "700", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "591", + "$id": "701", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "592", + "$id": "702", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "593", + "$id": "703", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "594", + "$id": "704", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Now use the 2 pieces to build a staircase. Pick one of them up and teleport to the large podium. Notice that you can now freely teleport around the area." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -3298,88 +4008,117 @@ } }, "Transitions": { - "$id": "595", + "$id": "705", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "596", + "$id": "706", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "597", + "$id": "707", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "598", + "$id": "708", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "599", + "$id": "709", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "600", + "$id": "710", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "601", + "$id": "711", "$type": "VRBuilder.BasicInteraction.Conditions.SnappedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "602", + "$id": "712", "$type": "VRBuilder.BasicInteraction.Conditions.SnappedCondition+EntityData, VRBuilder.BasicInteraction", + "TargetObjects": { + "$id": "713", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnappableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "714", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "dadfd54b-6114-46c5-b1ce-ff6d13ef92cb" + ] + } + }, "Target": { - "$id": "603", + "$id": "715", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnappableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Sliced Cube (1)" }, + "TargetSnapZone": { + "$id": "716", + "$type": "VRBuilder.Core.SceneObjects.SingleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnapZoneProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "717", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "79ce37fe-e994-4ebd-9141-5ae124ae8aea" + ] + } + }, "ZoneToSnapInto": { - "$id": "604", + "$id": "718", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnapZoneProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Sliced Cube (1)_SnapZone" }, - "Name": "Snap Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "605", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 17, + "$id": "719", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "720", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "a221ece1-d35c-4767-b617-3bd5b3b36fe1" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "606", + "$id": "721", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "607", + "$id": "722", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "608", + "$id": "723", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "609", + "$id": "724", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "610", + "$id": "725", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "611", + "$id": "726", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "612", + "$id": "727", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "613", + "$id": "728", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -3387,17 +4126,17 @@ ] }, "ChildMetadata": { - "$id": "614", + "$id": "729", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "615", + "$id": "730", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "616", + "$id": "731", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -3409,7 +4148,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "617", + "$id": "732", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -3419,87 +4158,116 @@ } }, { - "$id": "618", + "$id": "733", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "619", + "$id": "734", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "620", + "$id": "735", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "621", + "$id": "736", "$type": "VRBuilder.BasicInteraction.Conditions.SnappedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "622", + "$id": "737", "$type": "VRBuilder.BasicInteraction.Conditions.SnappedCondition+EntityData, VRBuilder.BasicInteraction", + "TargetObjects": { + "$id": "738", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnappableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "739", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "f2830878-3f69-4ee4-98bc-a9b93f030cb7" + ] + } + }, "Target": { - "$id": "623", + "$id": "740", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnappableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Sliced Cube (2)" }, + "TargetSnapZone": { + "$id": "741", + "$type": "VRBuilder.Core.SceneObjects.SingleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnapZoneProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "742", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "79ce37fe-e994-4ebd-9141-5ae124ae8aea" + ] + } + }, "ZoneToSnapInto": { - "$id": "624", + "$id": "743", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnapZoneProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Sliced Cube (1)_SnapZone" }, - "Name": "Snap Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "625", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 17, + "$id": "744", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "745", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "a221ece1-d35c-4767-b617-3bd5b3b36fe1" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "626", + "$id": "746", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "627", + "$id": "747", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "628", + "$id": "748", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "629", + "$id": "749", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "630", + "$id": "750", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "611" + "$ref": "726" }, { - "$ref": "612" + "$ref": "727" }, { - "$ref": "613" + "$ref": "728" } ] }, "ChildMetadata": { - "$id": "631", + "$id": "751", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "632", + "$id": "752", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "633", + "$id": "753", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -3511,7 +4279,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "634", + "$id": "754", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -3524,21 +4292,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "635", + "$id": "755", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "756", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "636", + "$id": "757", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "637", + "$id": "758", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "638", + "$id": "759", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -3547,46 +4318,53 @@ } }, { - "$id": "639", + "$id": "760", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "640", + "$id": "761", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 272.0, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "f8e637e3-8434-4f39-a8c5-428022d1b0e2" }, "Data": { - "$id": "641", + "$id": "762", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Activate teleportation area", "Description": null, "Behaviors": { - "$id": "642", + "$id": "763", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "643", + "$id": "764", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "644", + "$id": "765", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "645", - "$type": "VRBuilder.Core.Behaviors.EnableGameObjectBehavior, VRBuilder.Core", + "$id": "766", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior, VRBuilder.Core", "Data": { - "$id": "646", - "$type": "VRBuilder.Core.Behaviors.EnableGameObjectBehavior+EntityData, VRBuilder.Core", - "Target": { - "$id": "647", - "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", - "UniqueName": "Teleportation area" + "$id": "767", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior+EntityData, VRBuilder.Core", + "TargetObjects": { + "$id": "768", + "$type": "VRBuilder.Core.SceneObjects.MultipleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "769", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "c9d13eb8-87b1-466e-820d-20bbcae66652" + ] + } }, - "Metadata": null, - "DisableOnDeactivating": false, - "Name": "Enable Object" + "SetEnabled": true, + "RevertOnDeactivation": false, + "Metadata": null } } ] @@ -3594,72 +4372,80 @@ } }, "Transitions": { - "$id": "648", + "$id": "770", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "649", + "$id": "771", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "650", + "$id": "772", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "651", + "$id": "773", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "652", + "$id": "774", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "653", + "$id": "775", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [] }, "TargetStep": { - "$id": "654", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 15, + "$id": "776", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "777", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "3fe9edc1-423e-4c5d-a7f7-66244577a007" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "655", + "$id": "778", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "656", + "$id": "779", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "657", + "$id": "780", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "658", + "$id": "781", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "659", + "$id": "782", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "577" + "$ref": "686" }, { - "$ref": "578" + "$ref": "687" }, { - "$ref": "579" + "$ref": "688" } ] }, "ChildMetadata": { - "$id": "660", + "$id": "783", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [] } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "661", + "$id": "784", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -3672,21 +4458,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "662", + "$id": "785", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "786", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "663", + "$id": "787", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "664", + "$id": "788", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "665", + "$id": "789", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -3695,46 +4484,53 @@ } }, { - "$id": "666", + "$id": "790", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "667", + "$id": "791", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 792.8, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "a221ece1-d35c-4767-b617-3bd5b3b36fe1" }, "Data": { - "$id": "668", + "$id": "792", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Place 2nd step", "Description": null, "Behaviors": { - "$id": "669", + "$id": "793", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "670", + "$id": "794", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "671", + "$id": "795", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "672", - "$type": "VRBuilder.Core.Behaviors.EnableGameObjectBehavior, VRBuilder.Core", + "$id": "796", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior, VRBuilder.Core", "Data": { - "$id": "673", - "$type": "VRBuilder.Core.Behaviors.EnableGameObjectBehavior+EntityData, VRBuilder.Core", - "Target": { - "$id": "674", - "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", - "UniqueName": "Stair 1 Teleportation Area" + "$id": "797", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior+EntityData, VRBuilder.Core", + "TargetObjects": { + "$id": "798", + "$type": "VRBuilder.Core.SceneObjects.MultipleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "799", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "07a0b4da-52ae-470c-af91-17adf3fb3c6f" + ] + } }, - "Metadata": null, - "DisableOnDeactivating": false, - "Name": "Enable Object" + "SetEnabled": true, + "RevertOnDeactivation": false, + "Metadata": null } } ] @@ -3742,88 +4538,117 @@ } }, "Transitions": { - "$id": "675", + "$id": "800", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "676", + "$id": "801", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "677", + "$id": "802", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "678", + "$id": "803", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "679", + "$id": "804", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "680", + "$id": "805", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "681", + "$id": "806", "$type": "VRBuilder.BasicInteraction.Conditions.SnappedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "682", + "$id": "807", "$type": "VRBuilder.BasicInteraction.Conditions.SnappedCondition+EntityData, VRBuilder.BasicInteraction", + "TargetObjects": { + "$id": "808", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnappableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "809", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "dadfd54b-6114-46c5-b1ce-ff6d13ef92cb" + ] + } + }, "Target": { - "$id": "683", + "$id": "810", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnappableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Sliced Cube (1)" }, + "TargetSnapZone": { + "$id": "811", + "$type": "VRBuilder.Core.SceneObjects.SingleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnapZoneProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "812", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "7a2d666e-97a2-4898-9718-d4a6a25ea1d9" + ] + } + }, "ZoneToSnapInto": { - "$id": "684", + "$id": "813", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnapZoneProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Sliced Cube (1)_SnapZone_1" }, - "Name": "Snap Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "685", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 18, + "$id": "814", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "815", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "83f4e8e2-0d56-40e9-9b36-c4a3b62c9da2" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "686", + "$id": "816", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "687", + "$id": "817", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "688", + "$id": "818", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "689", + "$id": "819", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "690", + "$id": "820", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "691", + "$id": "821", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "692", + "$id": "822", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "693", + "$id": "823", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -3831,17 +4656,17 @@ ] }, "ChildMetadata": { - "$id": "694", + "$id": "824", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "695", + "$id": "825", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "696", + "$id": "826", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -3853,7 +4678,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "697", + "$id": "827", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -3863,87 +4688,116 @@ } }, { - "$id": "698", + "$id": "828", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "699", + "$id": "829", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "700", + "$id": "830", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "701", + "$id": "831", "$type": "VRBuilder.BasicInteraction.Conditions.SnappedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "702", + "$id": "832", "$type": "VRBuilder.BasicInteraction.Conditions.SnappedCondition+EntityData, VRBuilder.BasicInteraction", + "TargetObjects": { + "$id": "833", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnappableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "834", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "f2830878-3f69-4ee4-98bc-a9b93f030cb7" + ] + } + }, "Target": { - "$id": "703", + "$id": "835", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnappableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Sliced Cube (2)" }, + "TargetSnapZone": { + "$id": "836", + "$type": "VRBuilder.Core.SceneObjects.SingleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnapZoneProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "837", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "7a2d666e-97a2-4898-9718-d4a6a25ea1d9" + ] + } + }, "ZoneToSnapInto": { - "$id": "704", + "$id": "838", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ISnapZoneProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Sliced Cube (1)_SnapZone_1" }, - "Name": "Snap Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "705", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 18, + "$id": "839", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "840", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "83f4e8e2-0d56-40e9-9b36-c4a3b62c9da2" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "706", + "$id": "841", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "707", + "$id": "842", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "708", + "$id": "843", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "709", + "$id": "844", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "710", + "$id": "845", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "691" + "$ref": "821" }, { - "$ref": "692" + "$ref": "822" }, { - "$ref": "693" + "$ref": "823" } ] }, "ChildMetadata": { - "$id": "711", + "$id": "846", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "712", + "$id": "847", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "713", + "$id": "848", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -3955,7 +4809,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "714", + "$id": "849", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -3968,21 +4822,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "715", + "$id": "850", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "851", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "716", + "$id": "852", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "717", + "$id": "853", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "718", + "$id": "854", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -3991,46 +4848,53 @@ } }, { - "$id": "719", + "$id": "855", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "720", + "$id": "856", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 1161.6, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "83f4e8e2-0d56-40e9-9b36-c4a3b62c9da2" }, "Data": { - "$id": "721", + "$id": "857", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Enable teleportation on the stairs", "Description": null, "Behaviors": { - "$id": "722", + "$id": "858", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "723", + "$id": "859", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "724", + "$id": "860", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "725", - "$type": "VRBuilder.Core.Behaviors.EnableGameObjectBehavior, VRBuilder.Core", + "$id": "861", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior, VRBuilder.Core", "Data": { - "$id": "726", - "$type": "VRBuilder.Core.Behaviors.EnableGameObjectBehavior+EntityData, VRBuilder.Core", - "Target": { - "$id": "727", - "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", - "UniqueName": "Stair 2 Teleportation Area" + "$id": "862", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior+EntityData, VRBuilder.Core", + "TargetObjects": { + "$id": "863", + "$type": "VRBuilder.Core.SceneObjects.MultipleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "864", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "be51c34c-c375-465a-af43-ba76169788b7" + ] + } }, - "Metadata": null, - "DisableOnDeactivating": false, - "Name": "Enable Object" + "SetEnabled": true, + "RevertOnDeactivation": false, + "Metadata": null } } ] @@ -4038,23 +4902,23 @@ } }, "Transitions": { - "$id": "728", + "$id": "865", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "729", + "$id": "866", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "730", + "$id": "867", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "731", + "$id": "868", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "732", + "$id": "869", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "733", + "$id": "870", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [] }, @@ -4062,41 +4926,41 @@ "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "734", + "$id": "871", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "735", + "$id": "872", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "736", + "$id": "873", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "737", + "$id": "874", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "738", + "$id": "875", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "577" + "$ref": "686" }, { - "$ref": "578" + "$ref": "687" }, { - "$ref": "579" + "$ref": "688" } ] }, "ChildMetadata": { - "$id": "739", + "$id": "876", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [] } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "740", + "$id": "877", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -4109,21 +4973,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "741", + "$id": "878", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "879", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "742", + "$id": "880", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "743", + "$id": "881", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "744", + "$id": "882", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -4132,47 +4999,47 @@ } }, { - "$id": "745", + "$id": "883", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "746", + "$id": "884", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 170.4, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "3b8d99f7-d100-4053-9db5-ecdeb3ec911f" }, "Data": { - "$id": "747", + "$id": "885", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Climb steps", "Description": null, "Behaviors": { - "$id": "748", + "$id": "886", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "749", + "$id": "887", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "750", + "$id": "888", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "751", + "$id": "889", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "752", + "$id": "890", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "753", + "$id": "891", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Well done! You can now climb the steps!" }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -4181,92 +5048,110 @@ } }, "Transitions": { - "$id": "754", + "$id": "892", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "755", + "$id": "893", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "756", + "$id": "894", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "757", + "$id": "895", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "758", + "$id": "896", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "759", + "$id": "897", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "760", + "$id": "898", "$type": "VRBuilder.BasicInteraction.Conditions.TeleportCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "761", + "$id": "899", "$type": "VRBuilder.BasicInteraction.Conditions.TeleportCondition+EntityData, VRBuilder.BasicInteraction", + "TeleportationPoints": { + "$id": "900", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ITeleportationProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "901", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "c68eebf5-ffcd-4a77-8227-4c2396bc2513" + ] + } + }, "TeleportationPoint": { - "$id": "762", + "$id": "902", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ITeleportationProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Teleportation Spot_2" }, - "Name": "Teleport", "Metadata": null } } ] }, "TargetStep": { - "$id": "763", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 21, + "$id": "903", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "904", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "131b33a7-02f8-4e03-9e13-9475f6a369af" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "764", + "$id": "905", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "765", + "$id": "906", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "766", + "$id": "907", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "767", + "$id": "908", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "768", + "$id": "909", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "482" + "$ref": "562" }, { - "$ref": "483" + "$ref": "563" }, { - "$ref": "484" + "$ref": "564" } ] }, "ChildMetadata": { - "$id": "769", + "$id": "910", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "770", + "$id": "911", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "771", + "$id": "912", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -4278,7 +5163,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "772", + "$id": "913", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -4291,21 +5176,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "773", + "$id": "914", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "915", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "774", + "$id": "916", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "775", + "$id": "917", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "776", + "$id": "918", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 1 } @@ -4314,62 +5202,69 @@ } }, { - "$id": "777", + "$id": "919", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "778", + "$id": "920", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 609.6, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "7910e584-deff-4a68-b248-e4ed4872f84b" }, "Data": { - "$id": "779", + "$id": "921", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Take ball", "Description": null, "Behaviors": { - "$id": "780", + "$id": "922", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "781", + "$id": "923", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "782", + "$id": "924", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "783", - "$type": "VRBuilder.Core.Behaviors.DisableGameObjectBehavior, VRBuilder.Core", + "$id": "925", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior, VRBuilder.Core", "Data": { - "$id": "784", - "$type": "VRBuilder.Core.Behaviors.DisableGameObjectBehavior+EntityData, VRBuilder.Core", - "Target": { - "$id": "785", - "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", - "UniqueName": "Shield" + "$id": "926", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior+EntityData, VRBuilder.Core", + "TargetObjects": { + "$id": "927", + "$type": "VRBuilder.Core.SceneObjects.MultipleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "928", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "c0da1293-2f93-4588-8222-78eeaf6370d4" + ] + } }, - "Metadata": null, - "Name": "Disable Object" + "SetEnabled": false, + "RevertOnDeactivation": false, + "Metadata": null } }, { - "$id": "786", + "$id": "929", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "787", + "$id": "930", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "788", + "$id": "931", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Now the shield has been disabled, you can grab the ball. To finish this course, you must shoot it through the ring. It will return to the initial position if you miss." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -4378,39 +5273,49 @@ } }, "Transitions": { - "$id": "789", + "$id": "932", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "790", + "$id": "933", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "791", + "$id": "934", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "792", + "$id": "935", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "793", + "$id": "936", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "794", + "$id": "937", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "795", + "$id": "938", "$type": "VRBuilder.BasicInteraction.Conditions.GrabbedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "796", + "$id": "939", "$type": "VRBuilder.BasicInteraction.Conditions.GrabbedCondition+EntityData, VRBuilder.BasicInteraction", "KeepUnlocked": true, + "Targets": { + "$id": "940", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "941", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "c069190e-dc9c-46d1-a3bb-a4ccd6b6b3bd" + ] + } + }, "GrabbableProperty": { - "$id": "797", + "$id": "942", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Ball" }, "IsCompleted": false, - "Name": "Grab Object", "Metadata": null } } @@ -4420,36 +5325,36 @@ "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "798", + "$id": "943", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "799", + "$id": "944", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "800", + "$id": "945", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "801", + "$id": "946", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "802", + "$id": "947", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "803", + "$id": "948", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "804", + "$id": "949", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "805", + "$id": "950", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -4457,17 +5362,17 @@ ] }, "ChildMetadata": { - "$id": "806", + "$id": "951", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "807", + "$id": "952", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "808", + "$id": "953", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -4479,7 +5384,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "809", + "$id": "954", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -4492,21 +5397,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "810", + "$id": "955", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "956", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "811", + "$id": "957", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "812", + "$id": "958", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "813", + "$id": "959", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -4515,63 +5423,69 @@ } }, { - "$id": "814", + "$id": "960", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "815", + "$id": "961", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 403.2, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "131b33a7-02f8-4e03-9e13-9475f6a369af" }, "Data": { - "$id": "816", + "$id": "962", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Disable shield", "Description": null, "Behaviors": { - "$id": "817", + "$id": "963", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "818", + "$id": "964", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "819", + "$id": "965", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "820", - "$type": "VRBuilder.Core.Behaviors.EnableGameObjectBehavior, VRBuilder.Core", + "$id": "966", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior, VRBuilder.Core", "Data": { - "$id": "821", - "$type": "VRBuilder.Core.Behaviors.EnableGameObjectBehavior+EntityData, VRBuilder.Core", - "Target": { - "$id": "822", - "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", - "UniqueName": "Podium Teleportation Area" + "$id": "967", + "$type": "VRBuilder.Core.Behaviors.SetObjectsEnabledBehavior+EntityData, VRBuilder.Core", + "TargetObjects": { + "$id": "968", + "$type": "VRBuilder.Core.SceneObjects.MultipleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "969", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "9dd1b2b1-f799-4ac7-9759-a753b5c92766" + ] + } }, - "Metadata": null, - "DisableOnDeactivating": false, - "Name": "Enable Object" + "SetEnabled": true, + "RevertOnDeactivation": false, + "Metadata": null } }, { - "$id": "823", + "$id": "970", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "824", + "$id": "971", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "825", + "$id": "972", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "You cannot take the ball while the shield is active. Touch the panel to disable the shield." }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -4580,84 +5494,102 @@ } }, "Transitions": { - "$id": "826", + "$id": "973", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "827", + "$id": "974", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "828", + "$id": "975", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "829", + "$id": "976", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "830", + "$id": "977", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "831", + "$id": "978", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "832", + "$id": "979", "$type": "VRBuilder.BasicInteraction.Conditions.TouchedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "833", + "$id": "980", "$type": "VRBuilder.BasicInteraction.Conditions.TouchedCondition+EntityData, VRBuilder.BasicInteraction", + "TouchableProperties": { + "$id": "981", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ITouchableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "982", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "b1a0dd87-02c1-4354-8e10-fb84f67942a6" + ] + } + }, "TouchableProperty": { - "$id": "834", + "$id": "983", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.ITouchableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "TouchPanel_1" }, "IsCompleted": false, - "Name": "Touch Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "835", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 20, + "$id": "984", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "985", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "7910e584-deff-4a68-b248-e4ed4872f84b" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "836", + "$id": "986", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "837", + "$id": "987", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "838", + "$id": "988", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "839", + "$id": "989", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "840", + "$id": "990", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "841", + "$id": "991", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "842", + "$id": "992", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "843", + "$id": "993", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -4665,17 +5597,17 @@ ] }, "ChildMetadata": { - "$id": "844", + "$id": "994", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "845", + "$id": "995", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "846", + "$id": "996", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -4687,7 +5619,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "847", + "$id": "997", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -4700,21 +5632,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "848", + "$id": "998", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "999", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "849", + "$id": "1000", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "850", + "$id": "1001", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "851", + "$id": "1002", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -4723,47 +5658,47 @@ } }, { - "$id": "852", + "$id": "1003", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "853", + "$id": "1004", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 164.0, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "945f7ad3-556e-4b26-8e1d-59f3ead17a07" }, "Data": { - "$id": "854", + "$id": "1005", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Throw ball", "Description": null, "Behaviors": { - "$id": "855", + "$id": "1006", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "856", + "$id": "1007", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "857", + "$id": "1008", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "858", + "$id": "1009", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "859", + "$id": "1010", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "860", + "$id": "1011", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Shoot!" }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } } @@ -4772,84 +5707,102 @@ } }, "Transitions": { - "$id": "861", + "$id": "1012", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "862", + "$id": "1013", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "863", + "$id": "1014", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "864", + "$id": "1015", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "865", + "$id": "1016", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "866", + "$id": "1017", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "867", + "$id": "1018", "$type": "VRBuilder.BasicInteraction.Conditions.ReleasedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "868", + "$id": "1019", "$type": "VRBuilder.BasicInteraction.Conditions.ReleasedCondition+EntityData, VRBuilder.BasicInteraction", + "GrabbableProperties": { + "$id": "1020", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "1021", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "c069190e-dc9c-46d1-a3bb-a4ccd6b6b3bd" + ] + } + }, "GrabbableProperty": { - "$id": "869", + "$id": "1022", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Ball" }, "IsCompleted": false, - "Name": "Release Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "870", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 23, + "$id": "1023", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "1024", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "e00cfd2a-4626-4b44-af38-db704d251db9" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "871", + "$id": "1025", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "872", + "$id": "1026", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "873", + "$id": "1027", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "874", + "$id": "1028", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "875", + "$id": "1029", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "876", + "$id": "1030", "$type": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.FoldableAttribute", "TypeId": "VRBuilder.Core.Attributes.FoldableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "877", + "$id": "1031", "$type": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.DeletableAttribute", "TypeId": "VRBuilder.Core.Attributes.DeletableAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, { - "$id": "878", + "$id": "1032", "$type": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core", "Name": "VRBuilder.Core.Attributes.HelpAttribute", "TypeId": "VRBuilder.Core.Attributes.HelpAttribute, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" @@ -4857,17 +5810,17 @@ ] }, "ChildMetadata": { - "$id": "879", + "$id": "1033", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "880", + "$id": "1034", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "881", + "$id": "1035", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -4879,7 +5832,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "882", + "$id": "1036", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -4892,21 +5845,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "883", + "$id": "1037", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "1038", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "884", + "$id": "1039", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "885", + "$id": "1040", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "886", + "$id": "1041", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -4915,72 +5871,94 @@ } }, { - "$id": "887", + "$id": "1042", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "888", + "$id": "1043", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 436.0, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "e00cfd2a-4626-4b44-af38-db704d251db9" }, "Data": { - "$id": "889", + "$id": "1044", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Check Throw", "Description": null, "Behaviors": { - "$id": "890", + "$id": "1045", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "891", + "$id": "1046", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "892", + "$id": "1047", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [] } } }, "Transitions": { - "$id": "893", + "$id": "1048", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "894", + "$id": "1049", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "895", + "$id": "1050", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "896", + "$id": "1051", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "897", + "$id": "1052", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "898", + "$id": "1053", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "899", + "$id": "1054", "$type": "VRBuilder.Core.Conditions.ObjectInColliderCondition, VRBuilder.Core", "Data": { - "$id": "900", + "$id": "1055", "$type": "VRBuilder.Core.Conditions.ObjectInColliderCondition+EntityData, VRBuilder.Core", + "TargetObjects": { + "$id": "1056", + "$type": "VRBuilder.Core.SceneObjects.MultipleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "1057", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "c069190e-dc9c-46d1-a3bb-a4ccd6b6b3bd" + ] + } + }, "TargetObject": { - "$id": "901", + "$id": "1058", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "Ball" }, + "TriggerObject": { + "$id": "1059", + "$type": "VRBuilder.Core.SceneObjects.SingleScenePropertyReference`1[[VRBuilder.Core.Properties.ColliderWithTriggerProperty, VRBuilder.Core]], VRBuilder.Core", + "guids": { + "$id": "1060", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "2713c270-94b8-46cc-82ee-aaad4a2ccbf0" + ] + } + }, "TriggerProperty": { - "$id": "902", + "$id": "1061", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.Core.Properties.ColliderWithTriggerProperty, VRBuilder.Core]], VRBuilder.Core", "UniqueName": "TargetCollider" }, - "Name": "Move Object into Collider", "RequiredTimeInside": 0.0, "Metadata": null } @@ -4991,45 +5969,45 @@ "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "903", + "$id": "1062", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "904", + "$id": "1063", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "905", + "$id": "1064", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "906", + "$id": "1065", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "907", + "$id": "1066", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "876" + "$ref": "1030" }, { - "$ref": "877" + "$ref": "1031" }, { - "$ref": "878" + "$ref": "1032" } ] }, "ChildMetadata": { - "$id": "908", + "$id": "1067", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "909", + "$id": "1068", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "910", + "$id": "1069", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -5041,7 +6019,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "911", + "$id": "1070", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -5051,79 +6029,86 @@ } }, { - "$id": "912", + "$id": "1071", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "913", + "$id": "1072", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "914", + "$id": "1073", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "915", + "$id": "1074", "$type": "VRBuilder.Core.Conditions.TimeoutCondition, VRBuilder.Core", "Data": { - "$id": "916", + "$id": "1075", "$type": "VRBuilder.Core.Conditions.TimeoutCondition+EntityData, VRBuilder.Core", "Timeout": 4.0, "IsCompleted": false, - "Name": "Timeout", "Metadata": null } } ] }, "TargetStep": { - "$id": "917", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 24, + "$id": "1076", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "1077", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "16958c78-ea08-416b-b04e-d669ada7cf71" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "918", + "$id": "1078", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "919", + "$id": "1079", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "920", + "$id": "1080", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "921", + "$id": "1081", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "922", + "$id": "1082", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "876" + "$ref": "1030" }, { - "$ref": "877" + "$ref": "1031" }, { - "$ref": "878" + "$ref": "1032" } ] }, "ChildMetadata": { - "$id": "923", + "$id": "1083", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "924", + "$id": "1084", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "925", + "$id": "1085", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -5135,7 +6120,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "926", + "$id": "1086", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -5148,21 +6133,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "927", + "$id": "1087", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "1088", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "928", + "$id": "1089", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "929", + "$id": "1090", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "930", + "$id": "1091", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 1 } @@ -5171,106 +6159,195 @@ } }, { - "$id": "931", + "$id": "1092", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "932", + "$id": "1093", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 288.0, "y": 124.8 }, - "StepType": "default" + "StepType": "default", + "Guid": "16958c78-ea08-416b-b04e-d669ada7cf71" }, "Data": { - "$id": "933", + "$id": "1094", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Reset", "Description": null, "Behaviors": { - "$id": "934", + "$id": "1095", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "935", + "$id": "1096", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "936", + "$id": "1097", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "937", + "$id": "1098", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "938", + "$id": "1099", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "939", + "$id": "1100", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Try again!" }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } }, { - "$id": "940", + "$id": "1101", "$type": "VRBuilder.Core.Behaviors.BehaviorSequence, VRBuilder.Core", "Data": { - "$id": "941", + "$id": "1102", "$type": "VRBuilder.Core.Behaviors.BehaviorSequence+EntityData, VRBuilder.Core", "PlaysOnRepeat": false, "Behaviors": { - "$id": "942", + "$id": "1103", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "943", + "$id": "1104", "$type": "VRBuilder.Core.Behaviors.MoveObjectBehavior, VRBuilder.Core", "Data": { - "$id": "944", + "$id": "1105", "$type": "VRBuilder.Core.Behaviors.MoveObjectBehavior+EntityData, VRBuilder.Core", + "TargetObject": { + "$id": "1106", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "1107", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "c069190e-dc9c-46d1-a3bb-a4ccd6b6b3bd" + ] + } + }, "Target": { - "$id": "945", + "$id": "1108", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "Ball" }, + "FinalPosition": { + "$id": "1109", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "1110", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "ec4fe471-3ad6-4307-bae1-b797028b6424" + ] + } + }, "PositionProvider": { - "$id": "946", + "$id": "1111", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "Ball origin" }, "Duration": 1.0, - "Metadata": null, - "Name": "Move Object" + "AnimationCurve": { + "Keys": [ + { + "Time": 0.0, + "Value": 0.0, + "InTangent": 0.0, + "OutTangent": 1.0, + "InWeight": 0.0, + "OutWeight": 0.0, + "WeightedMode": 0 + }, + { + "Time": 1.0, + "Value": 1.0, + "InTangent": 1.0, + "OutTangent": 0.0, + "InWeight": 0.0, + "OutWeight": 0.0, + "WeightedMode": 0 + } + ], + "PreWrapMode": 8, + "PostWrapMode": 8 + }, + "Metadata": null } }, { - "$id": "947", + "$id": "1112", "$type": "VRBuilder.Core.Behaviors.MoveObjectBehavior, VRBuilder.Core", "Data": { - "$id": "948", + "$id": "1113", "$type": "VRBuilder.Core.Behaviors.MoveObjectBehavior+EntityData, VRBuilder.Core", + "TargetObject": { + "$id": "1114", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "1115", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "c069190e-dc9c-46d1-a3bb-a4ccd6b6b3bd" + ] + } + }, "Target": { - "$id": "949", + "$id": "1116", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "Ball" }, + "FinalPosition": { + "$id": "1117", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "1118", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "ec4fe471-3ad6-4307-bae1-b797028b6424" + ] + } + }, "PositionProvider": { - "$id": "950", + "$id": "1119", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "Ball origin" }, "Duration": 0.01, - "Metadata": null, - "Name": "Move Object" + "AnimationCurve": { + "Keys": [ + { + "Time": 0.0, + "Value": 0.0, + "InTangent": 0.0, + "OutTangent": 1.0, + "InWeight": 0.0, + "OutWeight": 0.0, + "WeightedMode": 0 + }, + { + "Time": 1.0, + "Value": 1.0, + "InTangent": 1.0, + "OutTangent": 0.0, + "InWeight": 0.0, + "OutWeight": 0.0, + "WeightedMode": 0 + } + ], + "PreWrapMode": 8, + "PostWrapMode": 8 + }, + "Metadata": null } } ] }, - "Name": "Sequence", "IsBlocking": true } } @@ -5279,94 +6356,112 @@ } }, "Transitions": { - "$id": "951", + "$id": "1120", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "952", + "$id": "1121", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "953", + "$id": "1122", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "954", + "$id": "1123", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "955", + "$id": "1124", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "956", + "$id": "1125", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "957", + "$id": "1126", "$type": "VRBuilder.BasicInteraction.Conditions.GrabbedCondition, VRBuilder.BasicInteraction", "Data": { - "$id": "958", + "$id": "1127", "$type": "VRBuilder.BasicInteraction.Conditions.GrabbedCondition+EntityData, VRBuilder.BasicInteraction", "KeepUnlocked": true, + "Targets": { + "$id": "1128", + "$type": "VRBuilder.Core.SceneObjects.MultipleScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", + "guids": { + "$id": "1129", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [ + "c069190e-dc9c-46d1-a3bb-a4ccd6b6b3bd" + ] + } + }, "GrabbableProperty": { - "$id": "959", + "$id": "1130", "$type": "VRBuilder.Core.SceneObjects.ScenePropertyReference`1[[VRBuilder.BasicInteraction.Properties.IGrabbableProperty, VRBuilder.BasicInteraction]], VRBuilder.Core", "UniqueName": "Ball" }, "IsCompleted": false, - "Name": "Grab Object", "Metadata": null } } ] }, "TargetStep": { - "$id": "960", - "$type": "VRBuilder.Core.Serialization.ImprovedNewtonsoftJsonProcessSerializer+ProcessWrapper+StepRef, VRBuilder.Core", - "PositionIndex": 22, + "$id": "1131", + "$type": "VRBuilder.Core.Serialization.NewtonsoftJsonProcessSerializerV4+Wrapper+StepRef, VRBuilder.Core", "LifeCycle": null, - "StepMetadata": null, + "StepMetadata": { + "$id": "1132", + "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", + "Position": { + "x": 0.0, + "y": 0.0 + }, + "StepType": null, + "Guid": "945f7ad3-556e-4b26-8e1d-59f3ead17a07" + }, "Parent": null }, "Mode": null, "IsCompleted": false, "Metadata": { - "$id": "961", + "$id": "1133", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "962", + "$id": "1134", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "Conditions": { - "$id": "963", + "$id": "1135", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.ReorderableListOfAttribute": { - "$id": "964", + "$id": "1136", "$type": "VRBuilder.Core.Attributes.ListOfAttribute+Metadata, VRBuilder.Core", "ChildAttributes": { - "$id": "965", + "$id": "1137", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Attributes.MetadataAttribute, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "876" + "$ref": "1030" }, { - "$ref": "877" + "$ref": "1031" }, { - "$ref": "878" + "$ref": "1032" } ] }, "ChildMetadata": { - "$id": "966", + "$id": "1138", "$type": "System.Collections.Generic.List`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "$values": [ { - "$id": "967", + "$id": "1139", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "VRBuilder.Core.Attributes.FoldableAttribute": true, "VRBuilder.Core.Attributes.DeletableAttribute": null, "VRBuilder.Core.Attributes.HelpAttribute": null, "ReorderableElement": { - "$id": "968", + "$id": "1140", "$type": "VRBuilder.Core.UI.Drawers.Metadata.ReorderableElementMetadata, VRBuilder.Core", "MoveUp": false, "MoveDown": false, @@ -5378,7 +6473,7 @@ } }, "VRBuilder.Core.Attributes.ExtendableListAttribute": { - "$id": "969", + "$id": "1141", "$type": "VRBuilder.Core.Attributes.ExtendableListAttribute+SerializedTypeWrapper, VRBuilder.Core", "Type": "VRBuilder.Core.Conditions.ICondition, VRBuilder.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } @@ -5391,21 +6486,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "970", + "$id": "1142", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "1143", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "971", + "$id": "1144", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "972", + "$id": "1145", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "973", + "$id": "1146", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -5414,59 +6512,68 @@ } }, { - "$id": "974", + "$id": "1147", "$type": "VRBuilder.Core.Step, VRBuilder.Core", "StepMetadata": { - "$id": "975", + "$id": "1148", "$type": "VRBuilder.Core.StepMetadata, VRBuilder.Core", "Position": { "x": 177.6, "y": 0.0 }, - "StepType": "default" + "StepType": "default", + "Guid": "020003d6-1d00-4fc2-884a-2983a08d03f5" }, "Data": { - "$id": "976", + "$id": "1149", "$type": "VRBuilder.Core.Step+EntityData, VRBuilder.Core", "Name": "Confetti!", "Description": null, "Behaviors": { - "$id": "977", + "$id": "1150", "$type": "VRBuilder.Core.BehaviorCollection, VRBuilder.Core", "Data": { - "$id": "978", + "$id": "1151", "$type": "VRBuilder.Core.BehaviorCollection+EntityData, VRBuilder.Core", "Behaviors": { - "$id": "979", + "$id": "1152", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.IBehavior, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "980", + "$id": "1153", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior, VRBuilder.Core", "Data": { - "$id": "981", + "$id": "1154", "$type": "VRBuilder.Core.Behaviors.PlayAudioBehavior+EntityData, VRBuilder.Core", "AudioData": { - "$id": "982", + "$id": "1155", "$type": "VRBuilder.TextToSpeech.Audio.TextToSpeechAudio, VRBuilder.TextToSpeech", "Text": "Great shot! This concludes the demo process. If you like VR Builder, please make sure to leave a review on the Unity Asset store. We would be grateful!" }, "ExecutionStages": 1, "Volume": 1.0, "Metadata": null, - "Name": "Play Audio", "IsBlocking": false } }, { - "$id": "983", + "$id": "1156", "$type": "VRBuilder.Core.Behaviors.ConfettiBehavior, VRBuilder.Core", "Data": { - "$id": "984", + "$id": "1157", "$type": "VRBuilder.Core.Behaviors.ConfettiBehavior+EntityData, VRBuilder.Core", "IsAboveUser": true, + "ConfettiPosition": { + "$id": "1158", + "$type": "VRBuilder.Core.SceneObjects.SingleSceneObjectReference, VRBuilder.Core", + "guids": { + "$id": "1159", + "$type": "System.Collections.Generic.List`1[[System.Guid, mscorlib]], mscorlib", + "$values": [] + } + }, "PositionProvider": { - "$id": "985", + "$id": "1160", "$type": "VRBuilder.Core.SceneObjects.SceneObjectReference, VRBuilder.Core", "UniqueName": "" }, @@ -5474,8 +6581,7 @@ "AreaRadius": 1.0, "Duration": 15.0, "ExecutionStages": 1, - "Metadata": null, - "Name": null + "Metadata": null } } ] @@ -5483,23 +6589,23 @@ } }, "Transitions": { - "$id": "986", + "$id": "1161", "$type": "VRBuilder.Core.TransitionCollection, VRBuilder.Core", "Data": { - "$id": "987", + "$id": "1162", "$type": "VRBuilder.Core.TransitionCollection+EntityData, VRBuilder.Core", "Transitions": { - "$id": "988", + "$id": "1163", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.ITransition, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "989", + "$id": "1164", "$type": "VRBuilder.Core.Transition, VRBuilder.Core", "Data": { - "$id": "990", + "$id": "1165", "$type": "VRBuilder.Core.Transition+EntityData, VRBuilder.Core", "Conditions": { - "$id": "991", + "$id": "1166", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Conditions.ICondition, VRBuilder.Core]], mscorlib", "$values": [] }, @@ -5513,21 +6619,24 @@ } } }, - "Current": null, "Mode": null, "ToUnlock": { - "$id": "992", + "$id": "1167", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.Behaviors.LockablePropertyReference, VRBuilder.Core]], mscorlib", "$values": [] }, + "TagsToUnlock": { + "$id": "1168", + "$type": "System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[System.Collections.Generic.IEnumerable`1[[System.Type, mscorlib]], mscorlib]], mscorlib" + }, "Metadata": { - "$id": "993", + "$id": "1169", "$type": "VRBuilder.Core.Metadata, VRBuilder.Core", "values": { - "$id": "994", + "$id": "1170", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib]], mscorlib", "TabsGroup": { - "$id": "995", + "$id": "1171", "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib", "selected": 0 } @@ -5538,292 +6647,291 @@ ] }, "Process": { - "$id": "996", + "$id": "1172", "$type": "VRBuilder.Core.Process, VRBuilder.Core", "CurrentStep": null, + "ProcessMetadata": { + "$id": "1173", + "$type": "VRBuilder.Core.ProcessMetadata, VRBuilder.Core", + "StringLocalizationTable": null, + "Guid": "30bb3047-44ad-4af1-a744-9102beeff0c9" + }, "Data": { - "$id": "997", + "$id": "1174", "$type": "VRBuilder.Core.Process+EntityData, VRBuilder.Core", "Chapters": { - "$id": "998", + "$id": "1175", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.IChapter, VRBuilder.Core]], mscorlib", "$values": [ { - "$id": "999", + "$id": "1176", "$type": "VRBuilder.Core.Chapter, VRBuilder.Core", "ChapterMetadata": { - "$id": "1000", + "$id": "1177", "$type": "VRBuilder.Core.ChapterMetadata, VRBuilder.Core", - "LastSelectedStep": { - "$ref": "3" - }, + "LastSelectedStep": null, "EntryNodePosition": { "x": 0.0, "y": 0.0 - } + }, + "Guid": "5fc899d8-cb5c-4a38-8ccf-5bc170a5b831" }, "Data": { - "$id": "1001", + "$id": "1178", "$type": "VRBuilder.Core.Chapter+EntityData, VRBuilder.Core", "Name": "Introduction", "FirstStep": { - "$ref": "3" + "$ref": "4" }, "Steps": { - "$id": "1002", + "$id": "1179", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.IStep, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "3" + "$ref": "4" } ] } } }, { - "$id": "1003", + "$id": "1180", "$type": "VRBuilder.Core.Chapter, VRBuilder.Core", "ChapterMetadata": { - "$id": "1004", + "$id": "1181", "$type": "VRBuilder.Core.ChapterMetadata, VRBuilder.Core", - "LastSelectedStep": { - "$ref": "122" - }, + "LastSelectedStep": null, "EntryNodePosition": { "x": 0.0, "y": 0.0 - } + }, + "Guid": "53cd98f5-7288-4cd6-aac1-d6f9d42662f9" }, "Data": { - "$id": "1005", + "$id": "1182", "$type": "VRBuilder.Core.Chapter+EntityData, VRBuilder.Core", "Name": "The magic cube", "FirstStep": { - "$ref": "22" + "$ref": "24" }, "Steps": { - "$id": "1006", + "$id": "1183", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.IStep, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "22" + "$ref": "24" }, { - "$ref": "57" + "$ref": "63" }, { - "$ref": "89" + "$ref": "99" }, { - "$ref": "122" + "$ref": "138" }, { - "$ref": "171" + "$ref": "202" } ] } } }, { - "$id": "1007", + "$id": "1184", "$type": "VRBuilder.Core.Chapter, VRBuilder.Core", "ChapterMetadata": { - "$id": "1008", + "$id": "1185", "$type": "VRBuilder.Core.ChapterMetadata, VRBuilder.Core", - "LastSelectedStep": { - "$ref": "556" - }, + "LastSelectedStep": null, "EntryNodePosition": { "x": 0.0, "y": 0.0 - } + }, + "Guid": "1eb3fcef-7d88-4639-ae1f-26b83f68c1dc" }, "Data": { - "$id": "1009", + "$id": "1186", "$type": "VRBuilder.Core.Chapter+EntityData, VRBuilder.Core", "Name": "Slice the magic cube", "FirstStep": { - "$ref": "206" + "$ref": "241" }, "Steps": { - "$id": "1010", + "$id": "1187", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.IStep, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "206" + "$ref": "241" }, { - "$ref": "242" + "$ref": "285" }, { - "$ref": "290" + "$ref": "340" }, { - "$ref": "342" + "$ref": "401" }, { - "$ref": "374" + "$ref": "437" }, { - "$ref": "406" + "$ref": "473" }, { - "$ref": "438" + "$ref": "509" }, { - "$ref": "503" + "$ref": "594" }, { - "$ref": "556" + "$ref": "661" } ] } } }, { - "$id": "1011", + "$id": "1188", "$type": "VRBuilder.Core.Chapter, VRBuilder.Core", "ChapterMetadata": { - "$id": "1012", + "$id": "1189", "$type": "VRBuilder.Core.ChapterMetadata, VRBuilder.Core", - "LastSelectedStep": { - "$ref": "719" - }, + "LastSelectedStep": null, "EntryNodePosition": { "x": -35.2, "y": 0.0 - } + }, + "Guid": "fa66dc89-dbc6-47ec-88cb-534ec7ce0580" }, "Data": { - "$id": "1013", + "$id": "1190", "$type": "VRBuilder.Core.Chapter+EntityData, VRBuilder.Core", "Name": "Assemble stairs", "FirstStep": { - "$ref": "639" + "$ref": "760" }, "Steps": { - "$id": "1014", + "$id": "1191", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.IStep, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "586" + "$ref": "696" }, { - "$ref": "639" + "$ref": "760" }, { - "$ref": "666" + "$ref": "790" }, { - "$ref": "719" + "$ref": "855" } ] } } }, { - "$id": "1015", + "$id": "1192", "$type": "VRBuilder.Core.Chapter, VRBuilder.Core", "ChapterMetadata": { - "$id": "1016", + "$id": "1193", "$type": "VRBuilder.Core.ChapterMetadata, VRBuilder.Core", - "LastSelectedStep": { - "$ref": "777" - }, + "LastSelectedStep": null, "EntryNodePosition": { "x": 0.0, "y": 0.0 - } + }, + "Guid": "6caae853-2510-42fe-947b-4e44a41aaf26" }, "Data": { - "$id": "1017", + "$id": "1194", "$type": "VRBuilder.Core.Chapter+EntityData, VRBuilder.Core", "Name": "Disable shield", "FirstStep": { - "$ref": "745" + "$ref": "883" }, "Steps": { - "$id": "1018", + "$id": "1195", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.IStep, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "745" + "$ref": "883" }, { - "$ref": "777" + "$ref": "919" }, { - "$ref": "814" + "$ref": "960" } ] } } }, { - "$id": "1019", + "$id": "1196", "$type": "VRBuilder.Core.Chapter, VRBuilder.Core", "ChapterMetadata": { - "$id": "1020", + "$id": "1197", "$type": "VRBuilder.Core.ChapterMetadata, VRBuilder.Core", - "LastSelectedStep": { - "$ref": "887" - }, + "LastSelectedStep": null, "EntryNodePosition": { "x": -21.6, "y": 0.0 - } + }, + "Guid": "82c893d1-f030-4716-bea7-16cdbb5b27b5" }, "Data": { - "$id": "1021", + "$id": "1198", "$type": "VRBuilder.Core.Chapter+EntityData, VRBuilder.Core", "Name": "Throw ball", "FirstStep": { - "$ref": "852" + "$ref": "1003" }, "Steps": { - "$id": "1022", + "$id": "1199", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.IStep, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "852" + "$ref": "1003" }, { - "$ref": "887" + "$ref": "1042" }, { - "$ref": "931" + "$ref": "1092" } ] } } }, { - "$id": "1023", + "$id": "1200", "$type": "VRBuilder.Core.Chapter, VRBuilder.Core", "ChapterMetadata": { - "$id": "1024", + "$id": "1201", "$type": "VRBuilder.Core.ChapterMetadata, VRBuilder.Core", - "LastSelectedStep": { - "$ref": "974" - }, + "LastSelectedStep": null, "EntryNodePosition": { "x": 0.0, "y": 0.0 - } + }, + "Guid": "815698a8-1cb5-48c1-8ab4-303ea405fd3e" }, "Data": { - "$id": "1025", + "$id": "1202", "$type": "VRBuilder.Core.Chapter+EntityData, VRBuilder.Core", "Name": "Outro", "FirstStep": { - "$ref": "974" + "$ref": "1147" }, "Steps": { - "$id": "1026", + "$id": "1203", "$type": "System.Collections.Generic.List`1[[VRBuilder.Core.IStep, VRBuilder.Core]], mscorlib", "$values": [ { - "$ref": "974" + "$ref": "1147" } ] } @@ -5832,13 +6940,12 @@ ] }, "FirstChapter": { - "$ref": "999" + "$ref": "1176" }, - "Current": null, "Name": "Demo - Core Features", "Mode": null, "Metadata": null } }, - "$serializerVersion": 2 + "$serializerVersion": 4 } \ No newline at end of file diff --git a/Documentation/images/instalation-wizard-help-documentantion.png b/Documentation/images/instalation-wizard-help-documentantion.png new file mode 100644 index 000000000..4cc9d2c82 --- /dev/null +++ b/Documentation/images/instalation-wizard-help-documentantion.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:281e9bccc7b55996c29bf1eb58b1ba0e8a9942a913391446925ae0d9bf2fadf9 +size 57097 diff --git a/Documentation/images/instalation-wizard-help-documentantion.png.meta b/Documentation/images/instalation-wizard-help-documentantion.png.meta new file mode 100644 index 000000000..b41ce390a --- /dev/null +++ b/Documentation/images/instalation-wizard-help-documentantion.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 45a353b82c1bec04a8a6bb759522f13c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/images/installation-wizard-hardware.png b/Documentation/images/installation-wizard-hardware.png index 897f6c7b1..b9172b925 100644 --- a/Documentation/images/installation-wizard-hardware.png +++ b/Documentation/images/installation-wizard-hardware.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3f6d6b7cc0d99ed69508ada13e60e68daa7645a9da9c53e27904cb065cdee4f3 -size 56101 +oid sha256:31791065bba7763c7fd8f2806b5e52bcceb33241ac3fd779572f4c3ab56dc5f2 +size 60762 diff --git a/Documentation/images/process-scene-object.png b/Documentation/images/process-scene-object.png index 6899eb33a..686dfacdb 100644 --- a/Documentation/images/process-scene-object.png +++ b/Documentation/images/process-scene-object.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5170855550bd01492aeb60f16d4b3b22123ee4f6e6d19113931f88978a21b102 -size 16243 +oid sha256:611cb17930fd88026d69737e3ae28073cac436f2d5ea995a831298ff876ad54b +size 9926 diff --git a/Documentation/images/snapzone-validation.png b/Documentation/images/snapzone-validation.png new file mode 100644 index 000000000..a4e999204 --- /dev/null +++ b/Documentation/images/snapzone-validation.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff94d670570bce7ac0ee32ecd3d6c916ec2bf8a9b0f7ea53a8ba4d2528a51015 +size 15110 diff --git a/Documentation/images/snapzone-validation.png.meta b/Documentation/images/snapzone-validation.png.meta new file mode 100644 index 000000000..149ed813a --- /dev/null +++ b/Documentation/images/snapzone-validation.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: d83d93793a291154d81288e84f2ddfe0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/images/snapzonegenerator.png b/Documentation/images/snapzonegenerator.png index e250a55fa..32e4319f8 100644 --- a/Documentation/images/snapzonegenerator.png +++ b/Documentation/images/snapzonegenerator.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:066e78cdccbb1fd8bb734b1ed1b382954b069d4f6cec53cfd9a6d81b2e90585c -size 17011 +oid sha256:7c8daf1c1720d3f97b3c8827c3744ca07b32d5937ff26268319d573810b20b38 +size 24303 diff --git a/Documentation/images/update-xri-samples.png b/Documentation/images/update-xri-samples.png new file mode 100644 index 000000000..0d1ab8b8a --- /dev/null +++ b/Documentation/images/update-xri-samples.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0abfe7895562aec7aaeef85eac934e5d121639b65e57b086de782a6a45ecfc3e +size 12666 diff --git a/Documentation/images/update-xri-samples.png.meta b/Documentation/images/update-xri-samples.png.meta new file mode 100644 index 000000000..8573e3076 --- /dev/null +++ b/Documentation/images/update-xri-samples.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: edd5f4346b4860642a6d4746dbdf107a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/vr-builder-manual.md b/Documentation/vr-builder-manual.md index f2e52cf32..6edc910c2 100644 --- a/Documentation/vr-builder-manual.md +++ b/Documentation/vr-builder-manual.md @@ -1,54 +1,64 @@ # VR Builder Manual -## Table of Contents - -1. [Introduction](#introduction) -1. [Requirements](#requirements) -1. [Installation](#installation) -1. [Quick Start](#quick-start) - - [Demo Scene Overview](#demo-scene-overview) - - [Demo Scene Hierarchy](#demo-scene-hierarchy) - - [Process Editor](#process-editor) - - [Chapters View](#chapters-view) - - [Graph View](#graph-view) - - [Step Nodes](#step-nodes) -1. [Process Scene Objects](#process-scene-objects) -1. [Locomotion](#locomotion) - - [Continuous Movement](#continuous-movement) - - [Teleportation](#teleportation) -1. [Default Behaviors](#default-behaviors) - - [Play Audio File](#guidanceplay-audio-file) - - [Play TextToSpeech Audio](#guidanceplay-texttospeech-audio) - - [Highlight Object](#guidancehighlight-object) - - [Audio Hint](#guidanceaudio-hint) - - [Spawn Confetti](#guidancespawn-confetti) - - [Behavior Sequence](#utilitybehavior-sequence) - - [Delay](#utilitydelay) - - [Set Parent](#utilityset-parent) - - [Disable Object (Reference)](#environmentdisable-object-by-reference) - - [Enable Object (Reference)](#environmentenable-object-by-reference) - - [Disable Object (Tag)](#environmentdisable-object-by-tag) - - [Enable Object (Tag)](#environmentenable-object-by-tag) - - [Disable Component (Reference)](#environmentdisable-component-by-reference) - - [Enable Component (Reference)](#environmentenable-component-by-reference) - - [Disable Component (Tag)](#environmentdisable-component-by-tag) - - [Enable Component (Tag)](#environmentenable-component-by-tag) - - [Unsnap Object](#environmentunsnap-object) - - [Move Object](#animationmove-object) -1. [Default Conditions](#default-conditions) - - [Move Object into Collider](#environmentmove-object-in-collider) - - [Object Nearby](#environmentobject-nearby) - - [Grab Object (Reference)](#interactiongrab-object-by-reference) - - [Grab Object (Tag)](#interactiongrab-object-by-tag) - - [Release Object](#interactionrelease-object) - - [Snap Object](#interactionsnap-object) - - [Touch Object](#interactiontouch-object) - - [Use Object](#interactionuse-object) - - [Timeout](#utilitytimeout) - - [Teleport](#vr-userteleport) -1. [Online Documentation](#online-documentation) -1. [Acknowledgements](#acknowledgements) -1. [Contact and Support](#contact-and-support) +## Table of Contents + +- [Introduction](#introduction) +- [Requirements](#requirements) +- [Installation](#installation) + - [Guide Through the Project Setup Wizard](#guide-through-the-project-setup-wizard) + - [Welcome](#welcome) + - [Interaction Settings](#interaction-settings) + - [XR Hardware Setup](#xr-hardware-setup) + - [Unity Localization](#unity-localization) + - [Help \& Documentation](#help--documentation) +- [Quick Start](#quick-start) + - [Demo Scene Overview](#demo-scene-overview) + - [Demo Scene Hierarchy](#demo-scene-hierarchy) + - [Customizing the Rig](#customizing-the-rig) + - [Process Editor](#process-editor) + - [Chapters view](#chapters-view) + - [Graph view](#graph-view) + - [Step Nodes](#step-nodes) +- [Process Scene Objects](#process-scene-objects) +- [Locomotion](#locomotion) + - [Continuous Movement](#continuous-movement) + - [Teleportation](#teleportation) +- [Behaviors](#behaviors) + - [Guidance](#guidance) + - [Play Audio File](#play-audio-file) + - [Play TextToSpeech Audio](#play-texttospeech-audio) + - [Highlight Object](#highlight-object) + - [Spawn Confetti](#spawn-confetti) + - [Utility](#utility) + - [Behavior Sequence](#behavior-sequence) + - [Delay](#delay) + - [Set Parent](#set-parent) + - [Environment](#environment) + - [Disable Objects](#disable-objects) + - [Enable Objects](#enable-objects) + - [Disable Components](#disable-components) + - [Enable Components](#enable-components) + - [Unsnap Object](#unsnap-object) + - [Animation](#animation) + - [Move Object](#move-object) +- [Conditions](#conditions) + - [Environment](#environment-1) + - [Move Objects in Collider](#move-objects-in-collider) + - [Object Nearby](#object-nearby) + - [Interaction](#interaction) + - [Grab Objects](#grab-objects) + - [Release Objects](#release-objects) + - [Snap Objects](#snap-objects) + - [Touch Objects](#touch-objects) + - [Use Objects](#use-objects) + - [Utility](#utility-1) + - [Timeout](#timeout) + - [Locomotion](#locomotion-1) + - [Teleport](#teleport) + - [Online Documentation](#online-documentation) +- [Acknowledgements](#acknowledgements) +- [Contact and Support](#contact-and-support) + ## Introduction @@ -70,7 +80,7 @@ This makes it very easy to start from some generic assets and build a fully inte ## Requirements -VR Builder is supported on Unity 2020.3 or later. It uses the built-in render pipeline by default, but URP is supported as well and existing materials can be easily converted. +VR Builder is supported on Unity 2021.3 or later. It uses the built-in render pipeline by default, but URP is supported as well and existing materials can be easily converted. VR Builder works out of the box with any headset compatible with Unity's XR Interaction Toolkit. @@ -78,47 +88,52 @@ VR Builder works out of the box with any headset compatible with Unity's XR Inte You can get VR Builder from the [Unity Asset Store](https://assetstore.unity.com/packages/tools/visual-scripting/vr-builder-201913) or from our [GitHub](https://github.com/MindPort-GmbH/VR-Builder/releases). In the first case, you will be able to download and import the VR Builder package from the package manager. If you have downloaded a .unitypackage from GitHub, just import it in the project. -If you are creating a new project, select the `3D`or `3D (URP)` template. Note that it is not necessary to choose the `VR` template as VR Builder will configure the project for VR automatically. - -After importing, VR Builder will compile and import some dependencies. If Unity's new input system is not selected in the player settings, the following window will appear prompting the user to automatically switch. +If you are creating a new project, select the `3D` or `3D (URP)` template. Note that it is not necessary to choose the `VR` template as VR Builder will configure the project for VR automatically. -![Restart Unity](images/installation-restart-input-system.png) +After importing, VR Builder will compile and import some dependencies. -Click `Yes` in order to restart the editor and enable the new input system. Note that the new input system is required by VR Builder, but you can enable both the new and the legacy one if it makes sense for you to do so. - -Then a dialog appears from Unity's XR Interaction Component. +For older Unity versions, a dialog from Unity's XR Interaction Component appears. VR Builder should work with either choice, so select the option that better suits your existing project. Use `I Made a Backup, Go Ahead!` if you are starting a new project. This will trigger an automated restart. ![Update Interaction Layermask](images/installation-xrit-layermask-update.png) -VR Builder should work with either choice, so select the option that better suits your existing project, or just go ahead if starting from a blank project. +For newer Unity versions the Samples of the XR Interaction Toolkit might need an update. -After the automated restart, the New Process Wizard pops up. +![Update Interaction Layermask](images/update-xri-samples.png) -![Wizard Welcome Page](images/installation-wizard-welcome.png) +After these notifications the Project Setup Wizard will appear. -Click `Next` to proceed to the interaction settings page setup page. +### Guide Through the Project Setup Wizard +The Setup Wizard helps to get new or existing Unity scenes set up and ready to be used with VR Builder. -Here you can configure some default settings related to VR Builder interactions. Right now, the only available setting will determine whether a newly created grabbable object will use physics or not. +#### Welcome +In the following we will guide you through the different tabs of the VR Builder Setup Wizard. +Click `Next` to proceed to the interaction settings page setup page. -You can also change these options at any time in `Project Settings > VR Builder > Settings`. +![Wizard Welcome Page](images/installation-wizard-welcome.png) -After reviewing the settings, click `Next`. +#### Interaction Settings +Here you can configure some default settings related to VR Builder interactions. Right now, the only available setting will determine whether a newly created grabbable object will use physics or not. You can also change these options at any time in `Project Settings > VR Builder > Settings`. ![Wizard Interaction Settings Page](images/installation-wizard-interaction-settings.png) -Then, if it's not configured already, you will be able to configure your project to work with your VR hardware. -Select any of the provided options to install the relevant packages from the Package Manager. +#### XR Hardware Setup +Then, if it's not configured already, you will be able to configure your project to work with your VR hardware. If your hardware is not listed but supports OpenXR, select Other. You might need to finish the configuration under Project Settings -> XR Plug-in Management. If your device is not supported, please reach out to us in the VR Builder Community. The packages for the selected hardware will be imported after closing the wizard. ![Wizard Hardware Page](images/installation-wizard-hardware.png) -Finally you must choose whether to set up localization support or skip it for now. VR Builder supports localization through the Unity Localization package. When setting up localization, the wizard will guide you through the manual steps required for a localized project. It provides a useful checklist and some shortcuts to make the task easier. It also has links that redirect to the relevant Unity documentation. -If you decide to skip this setup, VR Builder will work in a single language. You can perform localization setup at any time. +#### Unity Localization + +Finally you must choose whether to set up localization support or skip it for now. VR Builder supports localization through the Unity Localization package. When setting up localization, the wizard will guide you through the manual steps required for a localized project. It provides a useful checklist and some shortcuts to make the task easier. It also has links that redirect to the relevant Unity documentation. If you decide to skip this setup, VR Builder will work in a single language. You can perform localization setup at any time. We encourage you to use Unity Localization, even if you use just one language. With Unity Localization, you will have all your texts in one place inside the Unity Localization Tables, which in turn will give you the possibility to export and refine them and import them back into Unity. Note that as of January 2024, we do not support asset localization tables. See [Resources path/Key](https://github.com/MindPort-GmbH/VR-Builder/blob/develop/Documentation/vr-builder-manual.md#configuration) in the Documentation on how to localize audio files. ![Localization Page](images/installation-wizard-localization.png) -Now the setup is complete and VR Builder is ready to use! +#### Help & Documentation + +This page lists some useful resources to get you started with VR Builder. There is also a checkbox which lets you choose if the demo scene should be loaded after closing the wizard.After clicking Finish, VR Builder is set up! You will need to wait a few seconds for packages to import if you selected a headset from the hardware list. Then, feel free to try out the demo scene or create your own scene by selecting `Tools > VR Builder > Scene Setup Wizard…`. + +Note that if you selected the Unity URP template in the beginning, the materials on the avatar hands and demo scene will look solid magenta. That's Unity's way to tell you that the materials are not compatible with the current render pipeline. You can rectify this by selecting all materials (by filtering them in the project window), then click `Edit > Rendering > Materials > Convert Selected Built-in` Materials to URP. You can of course ignore this step if you don't plan to use the provided hand models or the demo scene. -If you chose the URP template, the materials on the avatar hands and demo scene will look solid magenta. That's Unity's way to tell you that the materials are not compatible with the current render pipeline. You can rectify this by selecting all materials (by filtering them in the project window), then click `Edit > Rendering > Materials > Convert Selected Built-in Materials to URP`. You can of course ignore this step if you don't plan to use the provided hand models or the demo scene. +![Localization Page](images/instalation-wizard-help-documentantion.png) ## Quick Start @@ -148,7 +163,7 @@ They are automatically added to every VR Builder scene. - `[PROCESS_CONTROLLER]` defines some parameters for processes in this scene like the spectator input bindings and camera. - `[XR_Setup_Action_Based_Hands]` is the VR rig used by the default XR interaction component. If you are using a different interaction component, for example to use VR Builder in conjunction with [Interhaptics or VRIF](https://www.mindport.co/vr-builder/add-ons-integrations), you might see a different rig here. -By looking at the other objects in the scene, we can see that some have a `Process Scene Object` component and possibly some "property" component. A `Process Scene Object` is an object with a unique name that can be accessed by the process. Properties define how the process can interact with the object. For example, a `Grabbable Property` will let VR Builder recognize if an object is being grabbed. Adding a `Grabbable Property` to an object will automatically make it a `Process Scene Object` and add a few components so you can interact with the object in VR. +By looking at the other objects in the scene, we can see that some have a `Process Scene Object` component and possibly some "property" component. A `Process Scene Object` has a unique object ID that can be accessed by the process. Properties define how the process can interact with the object. For example, a `Grabbable Property` will let VR Builder recognize if an object is being grabbed. Adding a `Grabbable Property` to an object will automatically make it a `Process Scene Object` and add a few components so you can interact with the object in VR. If these properties are not added manually you will usually be prompted to add them automatically when building the process of your VR application. @@ -156,7 +171,7 @@ If these properties are not added manually you will usually be prompted to add t Since VR Builder 2.2.0, the rig system has been simplified by removing the `[INTERACTION_RIG_LOADER]` and dummy rig. The default rig is created directly in the scene and can be edited or replaced like any game object. If you plan to use the same rig in multiple scenes, just create a prefab of it and manually replace the default rig. -The only requirement every VR Builder rig has, independent of the interaction system, is that it must contain a `User Scene Object` component. This component identifies the rig as the user, and is usually placed on the head (the main camera). +The only requirement every VR Builder rig has, independent of the interaction system, is that it must contain a `User Scene Object` component. This component identifies the rig as the user, and is usually placed on the root of the rig. It should reference the head and hand transforms, so that VR Builder can access those positions when needed. If left empty, it will attempt to find the head by itself by looking for the camera's transform. It is also possible to add other `Process Scene Object`s on the rig in order to use hands, backpacks, toolbelts and so on in behaviors and conditions, depending on the use case. @@ -197,13 +212,13 @@ Transitions can include conditions. If they do, they will trigger only when the We encourage you to investigate the other nodes to understand how the demo scene is built. #### Step Nodes -You can create a node by right clicking anywhere in the graph and selecting `New`, then the type of node you want to create. There are two types of node available in VR Builder core: +You can create a node by right clicking anywhere in the graph and selecting `New`, then the type of node you want to create. There are four types of node available in VR Builder core: -**Step** +##### Step This is the default step node, the main building block for your process. By default, it is empty. This means that nothing will happen, and the execution will immediately proceed to the next node, if present. You will need to add behaviors and conditions to it in the `Step Inspector` in order to customize it and build your process logic. -**Step Group** +##### Step Group This node doesn't let you set conditions and behaviors, but instead can be expanded in a new node graph. It can be populated with other step nodes and act as a "sub-chapter" with some self contained logic. This can help keeping the process tidy. @@ -226,9 +241,7 @@ You can also create a group by selecting a sequence of nodes, right clicking and If you encounter one of these edge case, make sure to review your process logic after grouping, as it may have changed. - Note: There is no theoretical limit to nesting step groups within one another. However, due to how processes are currently stored, too many nested groups can result in an unreadable JSON file. Therefore, creating step groups within a step group is currently disabled. While there are ways to work around this (e.g. with copy/paste), it is not recommended to do so. - -**Parallel Execution** +##### Parallel Execution The parallel execution node lets you execute two or more step sequences at the same time. Execution will continue to the next node once all parallel sequences have completed. @@ -239,7 +252,7 @@ Like with step groups, it is possible to return to the main process by clicking The buttons next to a parallel path let you rename or delete it. The "+" button at the bottom lets you add more parallel paths. There is no theoretical limit to the number of paths in a parallel execution node, but performance might suffer. -**End Chapter** +##### End Chapter You can use this node as the last node on a sequence. It will end the current chapter and start a new specified chapter, which can be selected from a drop-down list. This is useful to move through the chapters in a non-linear fashion. Note that you are not required to use this node for linear processes, as a chapter will automatically end when an empty transition is reached. In that case, the process will simply proceed to the following chapter. @@ -253,15 +266,15 @@ The `Process Scene Object` component acts as a bridge between the VR Builder pro ![Process Scene Object](images/process-scene-object.png) -The `Process Scene Object` generates a unique name which identifies the object internally in the VR Builder process. This is usually the game object's name, but numbers can be appended to maintain uniqueness. You can customize the unique name in the appropriate field. +The `Process Scene Object` generates a hidden object ID which identifies the object internally in the VR Builder process. -In addition to the unique name, it is possible to associate an arbitrary number of tags to every scene object. Tags are used by certain behaviors and conditions which allow to interact with unspecified objects with a certain tag rather than an object with a specific unique name. +In addition, it is possible to associate an arbitrary number of groups to every scene object. Some behaviors and conditions can interact with unspecified objects within a certain group rather than a specific object with a given object ID. -You can select and add an existing tag from the list, or create and add directly a new tag. You can remove a tag from an object by clicking the recycle bin button next to it. Tags are stored on a per-project basis and can be created, edited or deleted from `Project Settings > VR Builder > Scene Object Tags`. +You can select and assign an existing group from the list, or create and directly assign a new group. You can unassign a group from an object by clicking the X button next to it. Groups are stored on a per-project basis and can be created, edited or deleted from `Project Settings > VR Builder > Scene Object Groups`. -It is possible to edit multiple Process Scene Objects at the same time. The `Unique Name` field will of course be unavailable, but you can add or remove tags in bulk. When multiple objects are selected, all tags on all objects are listed below. +It is possible to edit multiple Process Scene Objects at the same time to add or remove groups in bulk. When multiple objects are selected, all groups on all objects are listed. -If a tag is present only on some of the selected objects, it will be displayed in *italics*. A default text style means that the tag is present on all selected objects. +If a group is present only on some of the selected objects, it will be displayed in *italics*. A default text style means that the group is present on all selected objects. ## Locomotion @@ -286,16 +299,17 @@ The teleportation anchor in particular also include two more options: you can cr Given this, teleportation should be easy to setup and just work out of the box. In case something does not, for example when editing an old scene or after changing the position of the XR Teleport layer, it is possible to reset the layers on the rig and all anchors and areas in the scene. To do so, select `Tools > VR Builder > Developer > Configure Teleportation Layers`. Note that this will overwrite your existing layer masks and select the `XR Teleport` layer on all of them. -## Default Behaviors +## Behaviors -Behaviors are used to make something happen in the process. Behaviors can be as simple as giving instructions and hints, making new objects visible, or animating an object in the scene. What they have in common is that something happens without requiring an intervention by the user. -This section lists the default behaviors included in this package. +Behaviors are used to make something happen in the process. Behaviors can be as simple as giving instructions and hints, making new objects visible, or animating an object in the scene. What they have in common is that something happens without requiring an intervention by the user. This section lists the behaviors included in VR Builder. ------ -## Guidance/Play Audio File +### Guidance + +#### Play Audio File -### Description +##### Description The Play Audio File behavior plays an audio clip loaded from the `Resources` folder in your project’s asset folder. VR Builder supports all audio file formats supported by Unity, which are: @@ -304,20 +318,22 @@ The Play Audio File behavior plays an audio clip loaded from the `Resources` fol - mp3 - ogg -### Configuration +##### Configuration - **Resources path/Key** -Insert the relative file path from the Resources folder. Please note that you have to omit the file extension, as shown in the example. You can find more information about this on https://docs.unity3d.com/ScriptReference/Resources.Load.html. + Insert the relative file path from the Resources folder. Please note that you have to omit the file extension, as shown in the example. You can find more information about this on https://docs.unity3d.com/ScriptReference/Resources.Load.html. -If localization is enabled, this should instead be a key in the localization table associated with the process, which contains the localized resources path. + If localization is enabled, this should instead be a key in the localization table associated with the process, which contains the localized resources path. -See the entry for the [Play TextToSpeech Audio Behavior](#guidanceplay-texttospeech-audio) for more information on localization support. + **Example without localization** + File to be played: `Assets/.../Resources/Sounds/click-sound.ogg` + Text/Key: `Sounds/click-sound` -#### Example - -File to be played: `Assets/.../Resources/Sounds/click-sound.ogg` -Default resource path: `Sounds/click-sound` + **Example with localization** + File to be played: `Assets/.../Resources/Sounds/click-sound.ogg` + Text/Key: `click-sound-key` + Localization table translation: `Sounds/click-sound` - **Volume** @@ -335,13 +351,13 @@ Default resource path: `Sounds/click-sound` By default, the step waits for the audio file to finish. If you want the step to interrupt the audio in case the step is completed, uncheck this option. - Note: this might lead to an audio file not even being started. + Note: this might lead to an audio file not even being started, in case the step ends immediately. ------ -## Guidance/Play TextToSpeech Audio +#### Play TextToSpeech Audio -### Description +##### Description The Play TextToSpeech Audio behavior uses a synthesized voice to read text. It supports localized text through Unity's Localization package. @@ -353,7 +369,7 @@ VR Builder will automatically switch to localized mode when a Localization Setti ![Play Text-to-speech Behavior](images/play-tts-behavior.png) -### Configuration +##### Configuration - **Text/Key** @@ -377,23 +393,23 @@ VR Builder will automatically switch to localized mode when a Localization Setti By default, the step waits for the audio file to finish. If you want the step to interrupt the audio in case the trainee completes the conditions, uncheck this option. - Note: this might lead to an audio file not even being started. + Note: this might lead to an audio file not even being started, in case the step ends immediately. ------ -## Guidance/Highlight Object +#### Highlight Object -### Description +##### Description The Highlight Object behavior visually highlights the selected object until the end of a step. -Select the highlighted `Object` in the Unity Hierarchy and open the Unity Inspector. Search for the *Interactable Highlighter Script*. +For additional highting features you can replace the *Default Highlighter* with a *Interactable Highlighter Script*. Select the highlighted `Object` in the Unity Hierarchy. In the Unity Inspector replace the *DefaultHighlighter* with a *Interactable Highlighter Script*. [![Interactable Highlighter Script](images/interactable-highlighter-script.png)](../images/default-behaviors/interactable-highlighter-script.png) You can define the Color and Material for *On Touch Highlight*, *On Grab Highlight*, and *On Use Highlight*. The object will show the highlight color configured in the Highlight behavior by default. As soon as the object is touched it will change to the color configured in *On Touch Highlight*. The same happens when the object is grabbed or used. It will display the configured color in ‘On Grab Highlight’ or ‘On Use Highlight’. -### Configuration +##### Configuration - **Color** @@ -405,25 +421,13 @@ You can define the Color and Material for *On Touch Highlight*, *On Grab Highlig ------ -## Guidance/Audio Hint +#### Spawn Confetti -### Description - -This composite behavior plays an audio file after a set time, for example to give the user some delayed hints. - -### Configuration - -The Audio Hint behavior is a sequence combining a Delay and a Play Audio File behavior. Please refer to the documentation for the [Behavior Sequence](#utilitybehavior-sequence), the [Delay behavior](#utilitydelay) and the [Play Audio File behavior](#guidanceplay-audio-file). - ------- - -## Guidance/Spawn Confetti - -### Description +##### Description The Spawn Confetti behavior causes confetti to fall above the selected `Object`. It can be useful as visual feedback or celebration for completing a task successfully. -### Configuration +##### Configuration - **Spawn Above User** @@ -443,7 +447,7 @@ The Spawn Confetti behavior causes confetti to fall above the selected `Object`. - **Duration** -Duration of the visual effect in seconds. + Duration of the visual effect in seconds. - **Execution stages** @@ -455,13 +459,15 @@ Duration of the visual effect in seconds. ------ -## Utility/Behavior Sequence +### Utility -### Description +#### Behavior Sequence + +##### Description The Behavior Sequence contains a list of child behaviors which will be activated one after another. A child behavior in the list will not be activated until the previous child behavior has finished its life cycle. -### Configuration +##### Configuration - **Repeat** @@ -476,33 +482,38 @@ The Behavior Sequence contains a list of child behaviors which will be activated If checked, the behavior sequence will finish the life cycle of each child behavior in the list before it transitions to another step. Even when the *"Repeat"* option is enabled, the execution will transition to the next step after the child behavior list has been completed. Uncheck this option if you want to interrupt the sequence as soon as all conditions of a transition are fulfilled. +##### Example +Play an audio file after a set time, for example to give the user some delayed hints. + +This is a sequence combining a Delay and a Play Audio File behavior. Refer to the documentation for the [Delay behavior](#utilitydelay) and the [Play Audio File behavior](#guidanceplay-audio-file). + ------ -## Utility/Delay +#### Delay -### Description +##### Description The Delay behavior completes after the specified amount of time. This step will wait for the duration configured in `Delay (in seconds)`, even when the user fulfills the required conditions to transition to the next step. -### Configuration +##### Configuration - **Delay (in seconds)** Configure the behavior’s delay duration in seconds. - #### Example + **Example** Delay (in seconds) = 1.3 ------ -## Utility/Set Parent +#### Set Parent -### Description +##### Description The Set Parent behavior parents an `Object` to another one in the Unity hierarchy. -### Configuration +##### Configuration - **Target** @@ -518,125 +529,52 @@ If checked, the target object will snap to the same position and rotation as the ------ -## Environment/Disable Object (by Reference) - -### Description - -The Disable Object behavior makes the selected `Object` invisible and non-interactive until it specifically is set back to *"enabled"* in a future step. -Put into Unity terms, it deactivates the selected Game Object. - -### Configuration - -- **Object** - - The `Process Scene Object` to be disabled. - ------- - -## Environment/Enable Object (by Reference) - -### Description - -The Enable Object behavior makes the selected `Object` visible and interactive until it is specifically set back to *"disabled"* in a future step. -Put into Unity terms, it activates the selected Game Object. - -### Configuration - -- **Object** - - The `Process Scene Object` to be enabled. - ------- - -## Environment/Disable Object (by Tag) - -### Description - -The Disable Object behavior makes all objects with the selected `Tag` invisible and non-interactive until specifically set back to *"enabled"* in a future step. -Put into Unity terms, it deactivates all tagged Game Objects. +### Environment -### Configuration +#### Disable Objects -- **Tag** - - The `Scene Object Tag` to check for. - ------- +##### Description -## Environment/Enable Object (by Tag) +The Disable Objects behavior makes the selected `Objects` invisible and non-interactive until they are specifically set back to *"enabled"* in a future step. Put into Unity terms, it deactivates the selected Game Objects. -### Description +##### Configuration -The Enable Object behavior makes all objects with the selected `Tag` visible and interactive until specifically set back to *"disabled"* in a future step. -Put into Unity terms, it activates all tagged Game Objects. +- **Objects** -### Configuration - -- **Tag** - - The `Scene Object Tag` to check for. + The `Process Scene Objects` to be disabled. ------ -## Environment/Disable Component (by Reference) +#### Enable Objects -### Description +##### Description -The Disable Component behavior disables all components of a specified type on a given game object. A drop-down list allowing to select the component type will appear once an object is referenced. +The Enable Objects behavior makes the selected `Objects` visible and interactive until it is specifically set back to *"disabled"* in a future step. +Put into Unity terms, it activates the selected Game Objects. -### Configuration +##### Configuration - **Object** - The `Process Scene Object` the component is on. - -- **Component type** - - The type of components that will be disabled. - -- **Enable at end of step** - - If checked, the components will be enabled again at the end of the step. + The `Process Scene Objects` to be enabled. ------ -## Environment/Enable Component (By Reference) +#### Disable Components -### Description +##### Description -The Enable Component behavior enables all components of a specified type on a given game object. A drop-down list allowing to select the component type will appear once an object is referenced. +The Disable Components behavior disables all components of the specified type on the given `Process Scene Objects`. -### Configuration +##### Configuration - **Object** - The `Process Scene Object` the component is on. - -- **Component type** - - The type of components that will be enabled. - -- **Disable at end of step** - - If checked, the components will be disabled again at the end of the step. - ------- - -## Environment/Disable Component (by Tag) - -### Description - -The Disable Component behavior disables all components of a specified type on all game objects with the given tag. - -### Configuration - -- **Tag** - - The `Scene Object Tag` to check for. + The `Process Scene Objects` the component is on. - **Component type** - The type of components that will be disabled. + A drop-down list allowing to select the component type that will be disabled. - **Enable at end of step** @@ -644,21 +582,21 @@ The Disable Component behavior disables all components of a specified type on al ------ -## Environment/Enable Component (By Tag) +#### Enable Components -### Description +##### Description -The Enable Component behavior enables all components of a specified type on all game objects with the given tag. +The Enable Components behavior enables all components of a specified type on the given `Process Scene Objects`. -### Configuration +##### Configuration -- **Tag** +- **Object** - The `Scene Object Tag` to check for. + The `Process Scene Objects` the component is on. - **Component type** - The type of components that will be enabled. + A drop-down list allowing to select the component type that will be enabled. - **Disable at end of step** @@ -666,13 +604,13 @@ The Enable Component behavior enables all components of a specified type on all ------ -## Environment/Unsnap Object +#### Unsnap Object -### Description +##### Description The Unsnap Object behavior unsnaps a snapped object from a snap zone. This can be useful in case the object needs to be further manipulated by the process. -### Configuration +##### Configuration Either the object or the snap zone can be left null. This will result in either the object unsnapping from any snap zone it is in, or in the unsnapping of whatever object is snapped to the specified snap zone. @@ -688,15 +626,17 @@ If both are specified, the unsnap will occur only if the specified object is sna ------ -## Animation/Move Object +### Animation + +#### Move Object -### Description +##### Description The Move Object behavior animates the `Object` to move and rotate (no scaling) to the position and rotation of the `Final Position Provider` in the time specified in the `Duration (in seconds)` parameter. Note: If `Object` was affected by gravity before, it will continue to be affected after this behavior. -### Configuration +##### Configuration - **Object** @@ -710,31 +650,34 @@ Note: If `Object` was affected by gravity before, it will continue to be affecte Time in seconds the animation takes to move and rotate `Object` to the `Final position provider`. - #### Example + **Example** Duration (in seconds) = 1.3 ------ -## Default Conditions +## Conditions Conditions are used to determine which transition is used to exit a step. Transitions are evaluated top to bottom, and the first valid one will be selected. To be valid means to have only fulfilled conditions or no conditions at all. A condition usually requires the user's intervention, for example grabbing an object. However this is not always the case: conditions like the timeout condition will trigger regardless of the user’s activity. There may also be cases in which other factors in the environment determine if a condition is fulfilled. -Conditions need to be active in order to be fulfilled. As soon as a step is active, all containing Conditions are active as well. +Conditions need to be active in order to be fulfilled. As soon as a step is active, all containing Conditions are active as well. +This section lists the conditions included in VR Builder. ------ -## Environment/Move Object in Collider +### Environment -### Description +#### Move Objects in Collider -The Move Object in Collider condition is fulfilled when the `Object` is within the specified `Collider` for the required amount of time (`Required seconds inside`) while this condition is active. +##### Description -### Configuration +The Move Objects in Collider condition is fulfilled when the `Objects` are within the specified `Collider` for the required amount of time (`Required seconds inside`) while this condition is active. + +##### Configuration - **Object** - The `Process Scene Object` to move. If the object needs to be grabbed, it needs to have the `Grabbable Property` and a collider component configured. The collider defines the area where the user can grab this object. + The `Process Scene Objects` to move. If the objects need to be grabbed, they need to have the `Grabbable Property` and a collider component configured. The collider defines the area where the user can grab an object. - **Collider** @@ -742,21 +685,21 @@ The Move Object in Collider condition is fulfilled when the `Object` is within - **Required seconds inside** - Set the time in seconds that the `Object` should stay inside the `Collider`. + Set the time in seconds that the `Objects` should stay inside the `Collider`. ------ -## Environment/Object Nearby +#### Object Nearby -### Description +##### Description The Object Nearby condition is fulfilled when the `Object` is within the specified `Range` of a `Reference object`. -### Configuration +##### Configuration - **Object** - The `Process Scene Object` that should be in the radius of the `Reference Object`. Make sure you add at least the `Process Scene Object` component to this game object in the Unity Inspector. + The `Process Scene Object` that should be in the radius of the `Reference Object`. - **Reference Object** @@ -771,174 +714,126 @@ The Object Nearby condition is fulfilled when the `Object` is within the specifi In this field, you can set the time in seconds the `Object` should stay within the radius `Range` of the `Reference Object`. ------ +### Interaction -## Interaction/Grab Object (by Reference) - -### Description - -The Grab Object condition is fulfilled when the user grabs the `Object`. -The condition is also fulfilled if the user already grabbed the Object before the step was activated, that is, if the user is already holding the specified object. - -### Configuration - -- **Object** - - The `Process Scene Object` to grab. The object needs to have the `Grabbable Property` and a collider component configured. The collider defines the area where the user can grab this object. - ------- - -## Interaction/Grab Object (by Tag) +#### Grab Objects -### Description +##### Description -The Grab Object condition is fulfilled when the user grabs any object with the specified `Tag`. -The condition is also fulfilled if the user already grabbed the object before the step was activated, that is, if the user is already holding a valid object. +The Grab Object condition is fulfilled when the user grabs any of the `Objects`. +The condition is also fulfilled if the user already grabbed any of Objects before the step was activated, that is, if the user is already holding the specified object. -### Configuration +##### Configuration -- **Tag** +- **Objects** - The `Scene Object Tag` that defines the valid objects for this condition. The objects need to have the `Grabbable Property` and a collider component configured. The collider defines the area where the user can grab this object. + The `Process Scene Objects` to grab. The objects needs to have the `Grabbable Property` and a collider component configured. The collider defines the area where the user can grab an object. ------ -## Interaction/Release Object +#### Release Objects -### Description +##### Description -The Release Object condition is fulfilled when the `Object` is released by the user's controller. If the user is not already holding the specified object in hand while this condition is active, it is fulfilled immediately. +The Release Objects condition is fulfilled when all of the `Objects` are released by the user's controller. If the user is not already holding any of the specified objects in hand while this condition is active, it is fulfilled immediately. -### Configuration +##### Configuration -- **Object** +- **Objects** - The `Process Scene Object` to release. The object needs to have the `Grabbable Property` and a collider component configured. + The `Process Scene Objects` to release. The objects need to have the `Grabbable Property` and a collider component configured. ------ -## Interaction/Snap Object (by Reference) - -### Description - -The Snap Object condition is fulfilled when the `Object` is released into the `Zone to snap into`, which means the collider of the Object and collider of the Zone overlap. Adapt the collider size of the snap zone to increase or decrease the area where the user can release the `Object`. Increasing the collider size of the snap zone decreases the required *snap* precision and simplifies the user's interaction in VR. -After the user releases the `Object`, this is moved to the snap zone's `SnapPoint`. To adjust this position, change the position of the SnapPoint child object of the `Zone to snap into` object. - -#### Snap Zone Generator -For any snappable object you can generate a snap zone that can snap exactly this object and can be used as a `Zone to snap into`. To do so, navigate to the `Snappable Property` in Unity's Inspector and click on the button `Create Snap Zone for this object`. - -![Snap Zone Generator](images/snapzonegenerator.png) - -#### Manual Snap Zone Creation -Instead of the automatic generation as described above, you can do those steps also manually. Please refer to available documentation on the `XRSocketInteractor` from Unity or related sources. You can also make changes to the automatically created snap zone to adapt it to your needs. Please note that these changes might impact the process logic. - -#### Feed Forward for Snap Zones - -Snap zones are restricted to which objects can be snapped. This means every object can be valid (i.e. it can be snapped to this zone) or invalid (it can not be snapped to this zone) for a snap zone. This is achieved with validation components on the snap zone, for example the `Is Object With Tag Validation` component or the `Is Process Scene Object Validation` component. You can use those to configure which specific objects or tags are accepted by the snap zone. -In case you are moving a valid object into a zone, the snap zone color changes to ‘Validation Color’ (green), providing the user in VR with positive feedback. In case you are moving an invalid object into a zone, the snap zone color changes to ‘Invalid Color’ (red), giving the user the feedback that this is the wrong object for this zone. -You can modify the colors and materials to be used in the Snap Zones parameters and settings. - -#### Snap Zone Parameters and Settings -To change the highlight color or validation hover material of a dedicated snap zone, navigate to the snap zone object in the Unity Inspector. You will find the Snap Zone Parameters and Settings in the script `Snap Zone`. +#### Snap Objects -![Snap Zone Parameters](images/snapzoneparameters.png) +##### Description -To change the colors and materials of all snap zones in the scene, select them in the VR Builder snap zone settings and press 'Apply settings in current scene'. +The Snap Object condition is fulfilled when any of the `Objects` is released into the `Zone to snap into`, which means the collider of any of the Objects and collider of the Zone overlap. Adapt the collider size of the snap zone to increase or decrease the area where the user can release an `Object`. Increasing the collider size of the snap zone decreases the required *snap* precision and simplifies the user's interaction in VR. +After the user releases an `Object`, this is moved to the snap zone's `SnapPoint`. To adjust this position, change the position of the SnapPoint child object of the `Zone to snap into` object. -![Snap Zone Settings](images/snapzonesettings.png)] +- **Snap Zone Generator** -The snap zone settings can be found in the project settings in tab `VR Builder > Settings > Snap Zones`. - -### Configuration - -- **Object** - - The `Process Scene Object` to place (snap). The object needs to have the `Snappable Property` and a collider component configured. - -- **Zone to snap into** - - This field contains the `Process Scene Object` where the `Object` is required to be snapped. Make sure you added the `Snap Zone Property` component to the snap zone game object in the Unity Inspector. Besides, the object must have a collider component with the `Is Trigger` property *enabled*. + For any snappable object you can generate a snap zone that can snap this object and can be used as a `Zone to snap into`. To do so, navigate to the `Snappable Property` in Unity's Inspector. You will see two buttons. Clicking on the button `Create Snap Zone for this object`, you will create a snap zone that only accepts this exact object. Clicking on `Create Snap Zone for objects in the same groups` will instead create a snap zone that accepts every object that shares at least a group with the current object. Note that the current object will still determine the shape of the snap zone's ghost object. - ------ + ![Snap Zone Generator](images/snapzonegenerator.png) -## Interaction/Snap Object (by Tag) + If you want a specific snap zone behavior, like for example accepting only one group of the source object instead of all of them, you'll have to manually change that. Select the snap zone and find the `Has Guid Validation` component. If you manually created your snap zone, you might have to add this component manually as well. + Add to the list the objects you want to be valid for this snap zone. You can reference single objects by object ID, or entire categories of objects via groups. -### Description + ![Snap Zone Validation](images/snapzone-validation.png) -This condition is fulfilled when any object with the specified tag is released into the `Zone to snap into`, which means the collider of the Object and collider of the Zone overlap. Adapt the collider size of the snap zone to increase or decrease the area where the user can release the `Object`. Increasing the collider size of the snap zone decreases the required *snap* precision and simplifies the user's interaction in VR. -After the user releases the object, this is moved to the snap zone's `SnapPoint`. To adjust this position, change the position of the SnapPoint child object of the `Zone to snap into` object. +- **Manual Snap Zone Creation** + + Instead of the automatic generation as described above, you can do those steps also manually. Please refer to available documentation on the `XRSocketInteractor` from Unity or related sources. You can also make changes to the automatically created snap zone to adapt it to your needs. Please note that these changes might impact the process logic. -#### Snap Zone Generator -For any snappable object you can generate a snap zone that can snap all objects with its same tags and can be used as a `Zone to snap into`. To do so, navigate to the `Snappable Property` in Unity's Inspector and click on the button `Create Snap Zone for objects with the same tags`. +- **Feed Forward for Snap Zones** -![Snap Zone Generator](images/snapzonegenerator.png) + Snap zones are restricted to which objects can be snapped. This means every object can be valid (i.e. it can be snapped to this zone) or invalid (it can not be snapped to this zone) for a snap zone. This is achieved with validation components on the snap zone, for example the `Has Guid Validation` component. You can use this component to configure which specific objects or groups are accepted by the snap zone. + In case you are moving a valid object into a zone, the snap zone color changes to ‘Validation Color’ (green), providing the user in VR with positive feedback. In case you are moving an invalid object into a zone, the snap zone color changes to ‘Invalid Color’ (red), giving the user the feedback that this is the wrong object for this zone. + You can modify the colors and materials to be used in the Snap Zones parameters and settings. -#### Manual Snap Zone Creation -Instead of the automatic generation as described above, you can do those steps also manually. Please refer to available documentation on the `XRSocketInteractor` from Unity or related sources. You can also make changes to the automatically created snap zone to adapt it to your needs. Please note that these changes might impact the process logic. +- **Snap Zone Parameters and Settings** -#### Feed Forward for Snap Zones + To change the highlight color or validation hover material of a dedicated snap zone, navigate to the snap zone object in the Unity Inspector. You will find the Snap Zone Parameters and Settings in the script `Snap Zone`. -Snap zones are restricted to which objects can be snapped. This means every object can be valid (i.e. it can be snapped to this zone) or invalid (it can not be snapped to this zone) for a snap zone. This is achieved with validation components on the snap zone, for example the `Is Object With Tag Validation` component or the `Is Process Scene Object Validation` component. You can use those to configure which specific objects or tags are accepted by the snap zone. -In case you are moving a valid object into a zone, the snap zone color changes to ‘Validation Color’ (green), providing the user in VR with positive feedback. In case you are moving an invalid object into a zone, the snap zone color changes to ‘Invalid Color’ (red), giving the user the feedback that this is the wrong object for this zone. -You can modify the colors and materials to be used in the Snap Zones parameters and settings. + ![Snap Zone Parameters](images/snapzoneparameters.png) -#### Snap Zone Parameters and Settings -To change the highlight color or validation hover material of a dedicated snap zone, navigate to the snap zone object in the Unity Inspector. You will find the Snap Zone Parameters and Settings in the script `Snap Zone`. + To change the colors and materials of all snap zones in the scene, select them in the VR Builder snap zone settings and press 'Apply settings in current scene'. -![Snap Zone Parameters](images/snapzoneparameters.png) + ![Snap Zone Settings](images/snapzonesettings.png) -To change the colors and materials of all snap zones in the scene, select them in the VR Builder snap zone settings and press 'Apply settings in current scene'. + The snap zone settings can be found in the project settings in tab `VR Builder > Settings > Snap Zones`. -![Snap Zone Settings](images/snapzonesettings.png)] +##### Configuration -The snap zone settings can be found in the project settings in tab `VR Builder > Settings > Snap Zones`. +- **Objects** -### Configuration - -- **Object** - - The `Process Scene Object` to place (snap). The object needs to have the `Snappable Property` and a collider component configured. + The `Process Scene Objects` to place (snap). The objects needs to have the `Snappable Property` and a collider component configured. - **Zone to snap into** - This field contains the `Process Scene Object` where the `Object` is required to be snapped. Make sure you added the `Snap Zone Property` component to the snap zone game object in the Unity Inspector. Besides, the object must have a collider component with the `Is Trigger` property *enabled*. + This field contains the `Process Scene Object` where any of the `Objects` are required to be snapped. Make sure the object has a collider component with the `Is Trigger` property *enabled*. ------ -## Interaction/Touch Object +#### Touch Objects -### Description +##### Description -The Touch Object condition is fulfilled when the `Object` is touched by the user's controller. If a user is already touching the specified object while this condition is active, this condition is fulfilled immediately. +The Touch Object condition is fulfilled when any of the `Objects` is touched by the user's controller. If a user is already touching the any of the objects while this condition is active, this condition is fulfilled immediately. -### Configuration +##### Configuration - **Object** - The `Process Scene Object` to be touched. The object needs to have the `Touchable Property` and a collider component configured. + The `Process Scene Objects` to be touched. The objects needs to have the `Touchable Property` and a collider component configured. ------ -## Interaction/Use Object +#### Use Objects -### Description +##### Description -The Use Object condition is fulfilled when the `Object` is used by pressing the *Use* button of the controller while being touched or grabbed. +The Use Objects condition is fulfilled when any of the `Objects` are used by pressing the *Use* button of the controller while being touched or grabbed. -### Configuration +##### Configuration -- **Object** +- **Objects** - The `Process Scene Object` that is required to be used.The `Object` needs to have the `Usable Property` and a collider component configured. + The `Process Scene Objects` of which one is required to be used. The `Objects` need to have the `Usable Property` and a collider component configured. ------ -## Utility/Timeout +### Utility + +#### Timeout -### Description +##### Description The Timeout condition is fulfilled when the time specified in `Wait (in seconds)` has elapsed. This can make sense as a "fallback" condition. For example, if the user does not complete condition X in the allotted amount of time, the timeout condition will trigger leading to a different step with different consequences. -### Configuration +##### Configuration - **Wait (in seconds)** @@ -946,31 +841,33 @@ The Timeout condition is fulfilled when the time specified in `Wait (in seconds) ------ -## VR User/Teleport +### Locomotion + +#### Teleport -### Description +##### Description -The Teleport condition is fulfilled when the user teleports to the referenced `Teleportation Point`. Previous teleportation actions made into the `Teleportation Point` are not considered. +The Teleport condition is fulfilled when the user teleports to any of the referenced `Teleportation Points`. Previous teleportation actions made into a `Teleportation Point` are not considered. -If the anchor used as `Teleportation Point` has proximity detection enabled, the condition will be fulfilled not only if the user teleports to it, but also if they move close to it with continuous movement or by walking in the room. You can activate proximity detection when you need the user to be in a specific location, regardless of whether they teleport or arrive there by other locomotion types. +If an anchor used as `Teleportation Point` has proximity detection enabled, the condition will be fulfilled not only if the user teleports to it, but also if they move close to it with continuous movement or by walking in the room. You can activate proximity detection when you need the user to be in a specific location, regardless of whether they teleport or arrive there by other locomotion types. The provided `Teleportation Property` is based on the Unity XR Interaction Toolkit's `Teleportation Anchor`. For further reference, please check out the XR Interaction Toolkit [documentation](https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@2.0/api/UnityEngine.XR.Interaction.Toolkit.TeleportationProvider.html). -#### Configuring the Teleportation Point +- **Configuring a Teleportation Point** -The `Teleportation Property` can be set as a **Default Teleportation Anchor** by clicking on the `Set Default Teleportation Anchor` button. You can find it when selecting the `Teleportation Point` and viewing it in the Unity Inspector. + The `Teleportation Property` can be set as a **Default Teleportation Anchor** by clicking on the `Set Default Teleportation Anchor` button. You can find it when selecting the `Teleportation Point` and viewing it in the Unity Inspector. -![Teleportation Property](images/teleportationproperty.PNG) + ![Teleportation Property](images/teleportationproperty.PNG) -This will configure the attached `Teleportation Anchor`. It will provide a visual element in the Unity Editor that helps placing the `Teleportation Point` in the scene. This visual element will also be shown in the virtual world during training execution to guide the user. + This will configure the attached `Teleportation Anchor`. It will provide a visual element in the Unity Editor that helps placing the `Teleportation Point` in the scene. This visual element will also be shown in the virtual world during training execution to guide the user. -### Configuration +##### Configuration -- **Teleportation Point** +- **Teleportation Points** - The `Teleportation Property` where the user should teleport. + The `Teleportation Properties` of which one, the user should teleport to. -## Online Documentation +### Online Documentation We offer a constantly expanding list of [guides and tutorials](https://www.mindport.co/tutorials-unity-vr-development) on our website. We encourage you to check them out to improve your VR Builder skills. @@ -984,7 +881,7 @@ Lastly, there are some [step-by-step tutorials](https://www.mindport.co/vr-build ## Acknowledgements -VR Builder is based on the open source edition of the [Innoactive Creator](https://www.innoactive.io/creator). While Innoactive helps enterprises to scale VR training, we adopted this tool to provide value for smaller content creators looking to streamline their VR development processes. +VR Builder is based on the open source edition of the [Innoactive Creator](https://github.com/Innoactive/Creator). While Innoactive helps enterprises to scale VR training, we adopted this tool to provide value for smaller content creators looking to streamline their VR development processes. Like Innoactive, we believe in the value of open source and will continue to support this approach together with them and the open source community. This means you are welcome to contribute to the [VR Builder GitHub repositories](https://github.com/MindPort-GmbH). diff --git a/Documentation/vr-builder-manual.pdf b/Documentation/vr-builder-manual.pdf index b825e3135..25daa8bf9 100644 Binary files a/Documentation/vr-builder-manual.pdf and b/Documentation/vr-builder-manual.pdf differ diff --git a/NOTICE.txt b/NOTICE.txt index f5f06ec6e..6f179ecde 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -17,4 +17,6 @@ This product contains parts of UltimateXR (https://github.com/VRMADA/ultimatexr- This product contains software Microsoft Speech Library developed by Microsoft, license is unknown as of 2019-12-20. +This product includes software Licensed under the Unity Companion License for Unity-dependent projects--see Unity Companion License http://www.unity3d.com/legal/licenses/Unity_Companion_License. + Modifications copyright 2021-2022 MindPort GmbH \ No newline at end of file diff --git a/README.md b/README.md index 57f6acca1..07ec0d947 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # VR Builder +https://github.com/MindPort-GmbH/VR-Builder/assets/247111/ca755abb-23fa-4742-a66c-2785bff4e80f + ## Introduction VR Builder helps you create interactive VR applications better and faster. By setting up a Unity scene for VR Builder, you will pair it with a VR Builder *process*. Through the VR Builder process, you can define a sequence of actions the user can take in the scene and the resulting consequences. diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Audio Data Drawers/PlayAudioBehaviorDrawer.cs b/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Audio Data Drawers/PlayAudioBehaviorDrawer.cs index e332dcbae..fd372981f 100644 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Audio Data Drawers/PlayAudioBehaviorDrawer.cs +++ b/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Audio Data Drawers/PlayAudioBehaviorDrawer.cs @@ -17,6 +17,8 @@ namespace VRBuilder.Editor.Core.UI.Drawers [DefaultProcessDrawer(typeof(PlayAudioBehavior.EntityData))] public class PlayAudioBehaviorDrawer : NameableDrawer { + private bool hasBeenPlayed = false; + public override Rect Draw(Rect rect, object currentValue, Action changeValueCallback, GUIContent label) { Rect nextPosition = new Rect(rect.x, rect.y, rect.width, EditorDrawingHelper.HeaderLineHeight); @@ -64,6 +66,12 @@ public override Rect Draw(Rect rect, object currentValue, Action changeV EditorGUI.BeginDisabledGroup(audioSource == null); if (audioSource != null) { + if (data.AudioData.AudioClip != null && !hasBeenPlayed) + { + RuntimeConfigurator.Configuration.InstructionPlayer.PlayOneShot(data.AudioData.AudioClip, data.Volume); + hasBeenPlayed = true; + + } if (audioSource.isPlaying) { if (GUI.Button(nextPosition, "Stop")) @@ -76,8 +84,7 @@ public override Rect Draw(Rect rect, object currentValue, Action changeV if (GUI.Button(nextPosition, "Preview")) { data.AudioData.InitializeAudioClip(); - - RuntimeConfigurator.Configuration.InstructionPlayer.PlayOneShot(data.AudioData.AudioClip, data.Volume); + hasBeenPlayed = false; } } } diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Component List Drawer/SetComponentEnabledBehaviorDrawer.cs b/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Component List Drawer/SetComponentEnabledBehaviorDrawer.cs index 838da3d5a..baef704b5 100644 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Component List Drawer/SetComponentEnabledBehaviorDrawer.cs +++ b/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Component List Drawer/SetComponentEnabledBehaviorDrawer.cs @@ -4,7 +4,6 @@ using UnityEditor; using UnityEngine; using VRBuilder.Core.Behaviors; -using VRBuilder.Core.Configuration; using VRBuilder.Core.Properties; using VRBuilder.Core.SceneObjects; using VRBuilder.Editor.UI; @@ -21,68 +20,69 @@ public class SetComponentEnabledBehaviorDrawer : NameableDrawer public override Rect Draw(Rect rect, object currentValue, Action changeValueCallback, GUIContent label) { rect = base.Draw(rect, currentValue, changeValueCallback, label); - float height = DrawLabel(rect, currentValue, changeValueCallback, label); - height += EditorDrawingHelper.VerticalSpacing; - Rect nextPosition = new Rect(rect.x, rect.y + height, rect.width, rect.height); - SetComponentEnabledBehavior.EntityData data = currentValue as SetComponentEnabledBehavior.EntityData; + SetComponentEnabledBehavior.EntityData data = currentValue as SetComponentEnabledBehavior.EntityData; + + nextPosition = DrawerLocator.GetDrawerForValue(data.TargetObjects, typeof(MultipleSceneObjectReference)).Draw(nextPosition, data.TargetObjects, changeValueCallback, "Objects"); - nextPosition = DrawerLocator.GetDrawerForValue(data.Target, typeof(SceneObjectReference)).Draw(nextPosition, data.Target, (value) => UpdateTargetObject(value, data, changeValueCallback), "Object"); height += nextPosition.height; height += EditorDrawingHelper.VerticalSpacing; nextPosition.y = rect.y + height; - if (RuntimeConfigurator.Configuration.SceneObjectRegistry.ContainsName(data.Target.UniqueName) && data.Target.Value != null) + List components = new List(); + + if (data.TargetObjects.IsEmpty() == false) { - List components = data.Target.Value.GameObject.GetComponents() + components = data.TargetObjects.Values + .SelectMany(sceneObject => sceneObject.GameObject.GetComponents()) .Where(CanBeDisabled) - .Where(c => c is ISceneObject == false && c is ISceneObjectProperty == false) // Make it impossible to use this behavior to disable VR Builder components + .Where(component => component is ISceneObject == false && component is ISceneObjectProperty == false) // Make it impossible to use this behavior to disable VR Builder components .ToList(); + } - int currentComponent = 0; + int currentComponent = 0; - List componentLabels = components.Select(c => c.GetType().Name).ToList(); - componentLabels.Insert(0, noComponentSelected); + List componentLabels = components.Select(c => c.GetType().Name).ToList(); + componentLabels.Insert(0, noComponentSelected); - if (string.IsNullOrEmpty(data.ComponentType) == false) + if (string.IsNullOrEmpty(data.ComponentType) == false) + { + if (componentLabels.Contains(data.ComponentType)) + { + currentComponent = componentLabels.IndexOf(componentLabels.First(l => l == data.ComponentType)); + } + else { - if (componentLabels.Contains(data.ComponentType)) - { - currentComponent = componentLabels.IndexOf(componentLabels.First(l => l == data.ComponentType)); - } - else - { - currentComponent = 0; - ChangeComponentType("", data, changeValueCallback); - } + currentComponent = 0; + ChangeComponentType("", data, changeValueCallback); } + } + + int newComponent = EditorGUI.Popup(nextPosition, "Component type", currentComponent, componentLabels.ToArray()); - int newComponent = EditorGUI.Popup(nextPosition, "Component type", currentComponent, componentLabels.ToArray()); + if (newComponent != currentComponent) + { + currentComponent = newComponent; - if(newComponent != currentComponent) + if (currentComponent == 0) + { + ChangeComponentType("", data, changeValueCallback); + } + else { - currentComponent = newComponent; - - if(currentComponent == 0) - { - ChangeComponentType("", data, changeValueCallback); - } - else - { - ChangeComponentType(componentLabels[currentComponent], data, changeValueCallback); - } - - changeValueCallback(data); + ChangeComponentType(componentLabels[currentComponent], data, changeValueCallback); } - height += EditorDrawingHelper.SingleLineHeight; - height += EditorDrawingHelper.VerticalSpacing; - nextPosition.y = rect.y + height; + changeValueCallback(data); } + height += EditorDrawingHelper.SingleLineHeight; + height += EditorDrawingHelper.VerticalSpacing; + nextPosition.y = rect.y + height; + string revertState = data.SetEnabled ? "Disable" : "Enable"; nextPosition = DrawerLocator.GetDrawerForValue(data.RevertOnDeactivation, typeof(bool)).Draw(nextPosition, data.RevertOnDeactivation, (value) => UpdateRevertOnDeactivate(value, data, changeValueCallback), $"{revertState} at end of step"); @@ -99,30 +99,6 @@ private bool CanBeDisabled(Component component) return component.GetType().GetProperty("enabled") != null; } - private void UpdateTargetObject(object value, SetComponentEnabledBehavior.EntityData data, Action changeValueCallback) - { - SceneObjectReference newTarget = (SceneObjectReference)value; - SceneObjectReference oldTarget = data.Target; - - if (newTarget != oldTarget) - { - data.Target = newTarget; - changeValueCallback(data); - RevertableChangesHandler.Do( - new ProcessCommand( - () => - { - data.Target = newTarget; - changeValueCallback(data); - }, - () => - { - data.Target = oldTarget; - changeValueCallback(data); - })); - } - } - private void ChangeComponentType(string newValue, SetComponentEnabledBehavior.EntityData data, Action changeValueCallback) { string oldValue = data.ComponentType; diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Component List Drawer/SetComponentEnabledBehaviorDrawer.cs.meta b/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Component List Drawer/SetComponentEnabledBehaviorDrawer.cs.meta index a7d81f416..207c16352 100644 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Component List Drawer/SetComponentEnabledBehaviorDrawer.cs.meta +++ b/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Component List Drawer/SetComponentEnabledBehaviorDrawer.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 76db1bb9c88f0dc49b1b9773decf820b +guid: 39625f8c9a9fbee4093bd2d6236d6399 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Component List Drawer/SetComponentEnabledByTagBehaviorDrawer.cs b/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Component List Drawer/SetComponentEnabledByTagBehaviorDrawer.cs index 2fa3b7cfb..35ab5c877 100644 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Component List Drawer/SetComponentEnabledByTagBehaviorDrawer.cs +++ b/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Component List Drawer/SetComponentEnabledByTagBehaviorDrawer.cs @@ -4,7 +4,6 @@ using UnityEditor; using UnityEngine; using VRBuilder.Core.Behaviors; -using VRBuilder.Core.Configuration; using VRBuilder.Core.Properties; using VRBuilder.Core.SceneObjects; using VRBuilder.Editor.UI; @@ -13,6 +12,7 @@ namespace VRBuilder.Editor.Core.UI.Drawers { + [Obsolete("This drawer is obsolete and will be removed in the next major version.")] [DefaultProcessDrawer(typeof(SetComponentEnabledByTagBehavior.EntityData))] public class SetComponentEnabledByTagBehaviorDrawer : NameableDrawer { @@ -27,7 +27,7 @@ public override Rect Draw(Rect rect, object currentValue, Action changeV SetComponentEnabledByTagBehavior.EntityData data = currentValue as SetComponentEnabledByTagBehavior.EntityData; - nextPosition = DrawerLocator.GetDrawerForValue(data.TargetTag, typeof(SceneObjectTagBase)).Draw(nextPosition, data.TargetTag, changeValueCallback, "Tag"); + nextPosition = DrawerLocator.GetDrawerForValue(data.TargetObjects, typeof(SceneObjectTagBase)).Draw(nextPosition, data.TargetObjects, changeValueCallback, "Objects"); height += nextPosition.height; height += EditorDrawingHelper.VerticalSpacing; @@ -35,9 +35,9 @@ public override Rect Draw(Rect rect, object currentValue, Action changeV List components = new List(); - if (data.TargetTag != null && data.TargetTag.Guid != Guid.Empty) + if (data.TargetObjects.IsEmpty() == false) { - components = RuntimeConfigurator.Configuration.SceneObjectRegistry.GetByTag(data.TargetTag.Guid) + components = data.TargetObjects.Values .SelectMany(sceneObject => sceneObject.GameObject.GetComponents()) .Where(CanBeDisabled) .Where(component => component is ISceneObject == false && component is ISceneObjectProperty == false) // Make it impossible to use this behavior to disable VR Builder components @@ -74,7 +74,7 @@ public override Rect Draw(Rect rect, object currentValue, Action changeV } else { - ChangeComponentType(componentLabels[currentComponent], data, changeValueCallback); + ChangeComponentType(componentLabels[currentComponent], data, changeValueCallback); } changeValueCallback(data); @@ -85,7 +85,7 @@ public override Rect Draw(Rect rect, object currentValue, Action changeV nextPosition.y = rect.y + height; string revertState = data.SetEnabled ? "Disable" : "Enable"; - nextPosition = DrawerLocator.GetDrawerForValue(data.RevertOnDeactivation, typeof(bool)).Draw(nextPosition, data.RevertOnDeactivation, (value) => UpdateRevertOnDeactivate(value, data, changeValueCallback), $"{revertState} at end of step"); + nextPosition = DrawerLocator.GetDrawerForValue(data.RevertOnDeactivation, typeof(bool)).Draw(nextPosition, data.RevertOnDeactivation, (value) => UpdateRevertOnDeactivate(value, data, changeValueCallback), $"{revertState} at end of step"); height += EditorDrawingHelper.SingleLineHeight; height += EditorDrawingHelper.VerticalSpacing; diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Component List Drawer/SetComponentEnabledByTagBehaviorDrawer.cs.meta b/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Component List Drawer/SetComponentEnabledByTagBehaviorDrawer.cs.meta index 207c16352..6bef628b0 100644 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Component List Drawer/SetComponentEnabledByTagBehaviorDrawer.cs.meta +++ b/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Component List Drawer/SetComponentEnabledByTagBehaviorDrawer.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 39625f8c9a9fbee4093bd2d6236d6399 +guid: ed1f6fc42800c9c4c862c6d454fdb54f MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Data Property Drawers/CompareValuesDrawer.cs b/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Data Property Drawers/CompareValuesDrawer.cs index 9fed95d17..2271f7c67 100644 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Data Property Drawers/CompareValuesDrawer.cs +++ b/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Data Property Drawers/CompareValuesDrawer.cs @@ -10,7 +10,7 @@ namespace VRBuilder.Editor.Core.UI.Drawers /// /// Custom drawer for . /// - public abstract class CompareValuesDrawer : NameableDrawer where T: IEquatable, IComparable + public abstract class CompareValuesDrawer : NameableDrawer where T : IEquatable, IComparable { /// /// Draws the dropdown for selecting the operator depending on the operands' type @@ -28,7 +28,7 @@ public override Rect Draw(Rect rect, object currentValue, Action changeV CompareValuesCondition.EntityData data = currentValue as CompareValuesCondition.EntityData; - ProcessVariable left = new ProcessVariable(data.LeftValue, data.LeftValueProperty.UniqueName, data.IsLeftConst); + ProcessVariable left = new ProcessVariable(data.LeftValue, data.LeftProperty.Guids, data.IsLeftConst); nextPosition = DrawerLocator.GetDrawerForValue(left, typeof(ProcessVariable)).Draw(nextPosition, left, (value) => UpdateLeftOperand(value, data, changeValueCallback), "Left Operand"); height += nextPosition.height; @@ -40,7 +40,7 @@ public override Rect Draw(Rect rect, object currentValue, Action changeV height += EditorDrawingHelper.VerticalSpacing; nextPosition.y = rect.y + height; - ProcessVariable right = new ProcessVariable(data.RightValue, data.RightValueProperty.UniqueName, data.IsRightConst); + ProcessVariable right = new ProcessVariable(data.RightValue, data.RightProperty.Guids, data.IsRightConst); nextPosition = DrawerLocator.GetDrawerForValue(left, typeof(ProcessVariable)).Draw(nextPosition, right, (value) => UpdateRightOperand(value, data, changeValueCallback), "Right Operand"); height += nextPosition.height; @@ -48,18 +48,18 @@ public override Rect Draw(Rect rect, object currentValue, Action changeV rect.height = height; return rect; - } + } private void UpdateLeftOperand(object value, CompareValuesCondition.EntityData data, Action changeValueCallback) { ProcessVariable newOperand = (ProcessVariable)value; - ProcessVariable oldOperand = new ProcessVariable(data.LeftValue, data.LeftValueProperty.UniqueName, data.IsLeftConst); - + ProcessVariable oldOperand = new ProcessVariable(data.LeftValue, data.LeftProperty.Guids, data.IsLeftConst); + bool valueChanged = false; - if(newOperand.PropertyReference.UniqueName != oldOperand.PropertyReference.UniqueName) + if (newOperand.Property.Guids != oldOperand.Property.Guids) { - data.LeftValueProperty = newOperand.PropertyReference; + data.LeftProperty = newOperand.Property; valueChanged = true; } @@ -75,7 +75,7 @@ private void UpdateLeftOperand(object value, CompareValuesCondition.EntityDat valueChanged = true; } - if(valueChanged) + if (valueChanged) { changeValueCallback(data); } @@ -84,13 +84,13 @@ private void UpdateLeftOperand(object value, CompareValuesCondition.EntityDat private void UpdateRightOperand(object value, CompareValuesCondition.EntityData data, Action changeValueCallback) { ProcessVariable newOperand = (ProcessVariable)value; - ProcessVariable oldOperand = new ProcessVariable(data.RightValue, data.RightValueProperty.UniqueName, data.IsRightConst); + ProcessVariable oldOperand = new ProcessVariable(data.RightValue, data.RightProperty.Guids, data.IsRightConst); bool valueChanged = false; - if (newOperand.PropertyReference.UniqueName != oldOperand.PropertyReference.UniqueName) + if (newOperand.Property.Guids != oldOperand.Property.Guids) { - data.RightValueProperty = newOperand.PropertyReference; + data.RightProperty = newOperand.Property; valueChanged = true; } diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Data Property Drawers/ProcessVariableDrawer.cs b/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Data Property Drawers/ProcessVariableDrawer.cs index 39ba9013f..eff7603d5 100644 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Data Property Drawers/ProcessVariableDrawer.cs +++ b/Source/Basic-Conditions-And-Behaviors/Editor/UI/Drawers/Data Property Drawers/ProcessVariableDrawer.cs @@ -1,21 +1,18 @@ using System; -using System.Reflection; -using UnityEditor; using UnityEngine; using VRBuilder.Core.Configuration; using VRBuilder.Core.ProcessUtils; +using VRBuilder.Core.Properties; using VRBuilder.Core.SceneObjects; -using VRBuilder.Core.Utils; using VRBuilder.Editor.UI; using VRBuilder.Editor.UI.Drawers; -using VRBuilder.Editor.UndoRedo; namespace VRBuilder.Editor.Core.UI.Drawers { /// /// Drawer for /// - internal abstract class ProcessVariableDrawer : UniqueNameReferenceDrawer where T : IEquatable + internal abstract class ProcessVariableDrawer : AbstractDrawer where T : IEquatable { /// /// Draws the field for the constant value depending on its type. @@ -24,120 +21,101 @@ internal abstract class ProcessVariableDrawer : UniqueNameReferenceDrawer whe /// public override Rect Draw(Rect rect, object currentValue, Action changeValueCallback, GUIContent label) - { + { if (RuntimeConfigurator.Exists == false) { return rect; } - isUndoOperation = false; ProcessVariable processVariable = (ProcessVariable)currentValue; - UniqueNameReference uniqueNameReference = processVariable.PropertyReference; - PropertyInfo valueProperty = uniqueNameReference.GetType().GetProperty("Value"); - Type valueType = ReflectionUtils.GetDeclaredTypeOfPropertyOrField(valueProperty); - - if (valueProperty == null) + ProcessVariableSelectableValue selectableValue = new ProcessVariableSelectableValue() { - throw new ArgumentException("Only ObjectReference<> implementations should inherit from the UniqueNameReference type."); - } + FirstValue = processVariable.ConstValue, + SecondValue = processVariable.Property, + IsFirstValueSelected = processVariable.IsConst, + }; - Rect guiLineRect = rect; - string oldUniqueName = uniqueNameReference.UniqueName; - GameObject selectedSceneObject = GetGameObjectFromID(oldUniqueName); + rect.height += DrawerLocator.GetDrawerForValue(selectableValue, selectableValue.GetType()).Draw(rect, selectableValue, (value) => ChangeValue( - if (selectedSceneObject == null && string.IsNullOrEmpty(oldUniqueName) == false && missingUniqueNames.Contains(oldUniqueName) == false) - { - missingUniqueNames.Add(oldUniqueName); - Debug.LogError($"The process object with the unique name '{oldUniqueName}' cannot be found!"); - } - - CheckForMisconfigurationIssues(selectedSceneObject, valueType, ref rect, ref guiLineRect); - - GUILayout.BeginArea(guiLineRect); - GUILayout.BeginHorizontal(); + () => + { + ProcessVariableSelectableValue processVariableSelectableValue = value as ProcessVariableSelectableValue; + ProcessVariable variable = new ProcessVariable(); + + variable.ConstValue = processVariableSelectableValue.FirstValue; + variable.Property = processVariableSelectableValue.SecondValue; + variable.IsConst = processVariableSelectableValue.IsFirstValueSelected; + return variable; + }, + () => processVariable, + (newValue) => + { + processVariable = (ProcessVariable)newValue; + changeValueCallback(newValue); + } + ), label).height; - EditorGUILayout.LabelField(label, GUILayout.Width(EditorGUIUtility.labelWidth)); - EditorGUI.BeginDisabledGroup(processVariable.IsConst); - selectedSceneObject = EditorGUILayout.ObjectField("", selectedSceneObject, typeof(GameObject), true) as GameObject; - EditorGUI.EndDisabledGroup(); + return rect; + } + private Guid GetIDFromSelectedObject(GameObject selectedSceneObject, Type valueType, Guid oldUniqueName) + { + Guid newGuid = Guid.Empty; - if(GUILayout.Toggle(!processVariable.IsConst, "Property reference", BuilderEditorStyles.RadioButton, GUILayout.Width(192))) + if (selectedSceneObject != null) { - processVariable.IsConst = false; - changeValueCallback(processVariable); + if (selectedSceneObject.GetComponent(valueType) != null) + { + if (typeof(ISceneObject).IsAssignableFrom(valueType)) + { + newGuid = GetUniqueIdFromSceneObject(selectedSceneObject); + } + else if (typeof(ISceneObjectProperty).IsAssignableFrom(valueType)) + { + newGuid = GetUniqueIdFromProcessProperty(selectedSceneObject, valueType, oldUniqueName); + } + } + else + { + // TODO handle non-PSO + } } - GUILayout.EndHorizontal(); - GUILayout.EndArea(); - - guiLineRect = AddNewRectLine(ref rect); - T oldConstValue = processVariable.ConstValue; - T newConstValue = processVariable.ConstValue; + return newGuid; + } - GUILayout.BeginArea(guiLineRect); - GUILayout.BeginHorizontal(); - EditorGUILayout.LabelField("", GUILayout.Width(EditorGUIUtility.labelWidth)); - EditorGUI.BeginDisabledGroup(processVariable.IsConst == false); - newConstValue = DrawConstField(newConstValue); - EditorGUI.EndDisabledGroup(); + private Guid GetUniqueIdFromSceneObject(GameObject selectedSceneObject) + { + ISceneObject sceneObject = selectedSceneObject.GetComponent(); - if (GUILayout.Toggle(processVariable.IsConst, "Constant value", BuilderEditorStyles.RadioButton, GUILayout.Width(192))) + if (sceneObject != null) { - processVariable.IsConst = true; - changeValueCallback(processVariable); + return sceneObject.Guid; } - GUILayout.EndHorizontal(); - GUILayout.EndArea(); - - string newUniqueName = GetIDFromSelectedObject(selectedSceneObject, valueType, oldUniqueName); + Debug.LogWarning($"Game Object \"{selectedSceneObject.name}\" does not have a Process Object component."); + return Guid.Empty; + } - if (oldUniqueName != newUniqueName) + private Guid GetUniqueIdFromProcessProperty(GameObject selectedProcessPropertyObject, Type valueType, Guid oldGuid) + { + if (selectedProcessPropertyObject.GetComponent(valueType) is ISceneObjectProperty processProperty) { - RevertableChangesHandler.Do( - new ProcessCommand( - () => - { - processVariable.PropertyReference.UniqueName = newUniqueName; - changeValueCallback(processVariable); - }, - () => - { - processVariable.PropertyReference.UniqueName = oldUniqueName; - changeValueCallback(processVariable); - }), - isUndoOperation ? undoGroupName : string.Empty); - - if (isUndoOperation) - { - RevertableChangesHandler.CollapseUndoOperations(undoGroupName); - } + return processProperty.SceneObject.Guid; } - if (newConstValue != null && newConstValue.Equals(processVariable.ConstValue) == false) - { - RevertableChangesHandler.Do( - new ProcessCommand( - () => - { - processVariable.ConstValue = newConstValue; - changeValueCallback(processVariable); - }, - () => - { - processVariable.ConstValue = oldConstValue; - changeValueCallback(processVariable); - }), - isUndoOperation ? undoGroupName : string.Empty); - - if (isUndoOperation) - { - RevertableChangesHandler.CollapseUndoOperations(undoGroupName); - } - } + Debug.LogWarning($"Scene Object \"{selectedProcessPropertyObject.name}\" with Object ID \"{oldGuid}\" does not have a {valueType.Name} component."); + return Guid.Empty; + } - return rect; + protected Rect AddNewRectLine(ref Rect currentRect) + { + Rect newRectLine = currentRect; + newRectLine.height = EditorDrawingHelper.SingleLineHeight; + newRectLine.y += currentRect.height + EditorDrawingHelper.VerticalSpacing; + + currentRect.height += EditorDrawingHelper.SingleLineHeight + EditorDrawingHelper.VerticalSpacing; + return newRectLine; } } } \ No newline at end of file diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableComponentByTagMenuItem.cs b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableComponentByTagMenuItem.cs deleted file mode 100644 index 4dea34a25..000000000 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableComponentByTagMenuItem.cs +++ /dev/null @@ -1,18 +0,0 @@ -using VRBuilder.Core.Behaviors; -using VRBuilder.Editor.UI.StepInspector.Menu; - -namespace VRBuilder.Editor.UI.Behaviors -{ - /// - public class DisableComponentByTagMenuItem : MenuItem - { - /// - public override string DisplayedName { get; } = "Environment/Disable Component/By Tag"; - - /// - public override IBehavior GetNewItem() - { - return new SetComponentEnabledByTagBehavior(false, "Disable Component (Tag)"); - } - } -} diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableComponentMenuItem.cs b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableComponentMenuItem.cs index 5179cb7d8..99ca79003 100644 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableComponentMenuItem.cs +++ b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableComponentMenuItem.cs @@ -7,7 +7,7 @@ namespace VRBuilder.Editor.UI.Behaviors public class DisableComponentMenuItem : MenuItem { /// - public override string DisplayedName { get; } = "Environment/Disable Component/By Reference"; + public override string DisplayedName { get; } = "Environment/Disable Components"; /// public override IBehavior GetNewItem() diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableGameObjectMenuItem.cs b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableGameObjectMenuItem.cs deleted file mode 100644 index d5a447dfc..000000000 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableGameObjectMenuItem.cs +++ /dev/null @@ -1,18 +0,0 @@ -using VRBuilder.Core.Behaviors; -using VRBuilder.Editor.UI.StepInspector.Menu; - -namespace VRBuilder.Editor.UI.Behaviors -{ - /// - public class DisableGameObjectMenuItem : MenuItem - { - /// - public override string DisplayedName { get; } = "Environment/Disable Objects/By Reference"; - - /// - public override IBehavior GetNewItem() - { - return new DisableGameObjectBehavior(); - } - } -} diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableObjectsWithTagMenuItem.cs b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableObjectsMenuItem.cs similarity index 68% rename from Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableObjectsWithTagMenuItem.cs rename to Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableObjectsMenuItem.cs index fe2c69361..f1845de07 100644 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableObjectsWithTagMenuItem.cs +++ b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableObjectsMenuItem.cs @@ -4,15 +4,15 @@ namespace VRBuilder.Editor.UI.Behaviors { /// - public class EnableObjectsWithTagMenuItem : MenuItem + public class DisableObjectsMenuItem : MenuItem { /// - public override string DisplayedName { get; } = "Environment/Enable Objects/By Tag"; + public override string DisplayedName { get; } = "Environment/Disable Objects"; /// public override IBehavior GetNewItem() { - return new SetObjectsWithTagEnabledBehavior(true); + return new SetObjectsEnabledBehavior(false); } } } diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableObjectsWithTagMenuItem.cs.meta b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableObjectsMenuItem.cs.meta similarity index 100% rename from Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableObjectsWithTagMenuItem.cs.meta rename to Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableObjectsMenuItem.cs.meta diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableComponentByTagMenuItem.cs b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableComponentByTagMenuItem.cs deleted file mode 100644 index a8ff73590..000000000 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableComponentByTagMenuItem.cs +++ /dev/null @@ -1,18 +0,0 @@ -using VRBuilder.Core.Behaviors; -using VRBuilder.Editor.UI.StepInspector.Menu; - -namespace VRBuilder.Editor.UI.Behaviors -{ - /// - public class EnableComponentByTagMenuItem : MenuItem - { - /// - public override string DisplayedName { get; } = "Environment/Enable Component/By Tag"; - - /// - public override IBehavior GetNewItem() - { - return new SetComponentEnabledByTagBehavior(true, "Enable Component (Tag)"); - } - } -} diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableComponentMenuItem.cs b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableComponentMenuItem.cs index 0165782f5..9b0b07c1b 100644 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableComponentMenuItem.cs +++ b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableComponentMenuItem.cs @@ -7,7 +7,7 @@ namespace VRBuilder.Editor.UI.Behaviors public class EnableComponentMenuItem : MenuItem { /// - public override string DisplayedName { get; } = "Environment/Enable Component/By Reference"; + public override string DisplayedName { get; } = "Environment/Enable Components"; /// public override IBehavior GetNewItem() diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableGameObjectMenuItem.cs b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableGameObjectMenuItem.cs deleted file mode 100644 index e3db69893..000000000 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableGameObjectMenuItem.cs +++ /dev/null @@ -1,18 +0,0 @@ -using VRBuilder.Core.Behaviors; -using VRBuilder.Editor.UI.StepInspector.Menu; - -namespace VRBuilder.Editor.UI.Behaviors -{ - /// - public class EnableGameObjectMenuItem : MenuItem - { - /// - public override string DisplayedName { get; } = "Environment/Enable Objects/By Reference"; - - /// - public override IBehavior GetNewItem() - { - return new EnableGameObjectBehavior(); - } - } -} diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableObjectsWithTagMenuItem.cs b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableObjectsMenuItem.cs similarity index 67% rename from Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableObjectsWithTagMenuItem.cs rename to Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableObjectsMenuItem.cs index c211e0c62..2c027bf9a 100644 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableObjectsWithTagMenuItem.cs +++ b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableObjectsMenuItem.cs @@ -4,15 +4,15 @@ namespace VRBuilder.Editor.UI.Behaviors { /// - public class DisableObjectsWithTagMenuItem : MenuItem + public class EnableObjectsMenuItem : MenuItem { /// - public override string DisplayedName { get; } = "Environment/Disable Objects/By Tag"; + public override string DisplayedName { get; } = "Environment/Enable Objects"; /// public override IBehavior GetNewItem() { - return new SetObjectsWithTagEnabledBehavior(false); + return new SetObjectsEnabledBehavior(true); } } } diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableObjectsWithTagMenuItem.cs.meta b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableObjectsMenuItem.cs.meta similarity index 100% rename from Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableObjectsWithTagMenuItem.cs.meta rename to Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableObjectsMenuItem.cs.meta diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/HighlightObjectMenuItem.cs b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/HighlightObjectMenuItem.cs index cd5510f02..c0c9bb7ce 100644 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/HighlightObjectMenuItem.cs +++ b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/HighlightObjectMenuItem.cs @@ -7,7 +7,7 @@ namespace VRBuilder.Editor.UI.Behaviors public class HighlightObjectMenuItem : MenuItem { /// - public override string DisplayedName { get; } = "Guidance/Highlight Object"; + public override string DisplayedName { get; } = "Guidance/Highlight Objects"; /// public override IBehavior GetNewItem() diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/LockObjectMenuItem.cs b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/LockObjectMenuItem.cs deleted file mode 100644 index a659cdd0f..000000000 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/LockObjectMenuItem.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using VRBuilder.Core.Behaviors; -using VRBuilder.Editor.UI.StepInspector.Menu; - -namespace VRBuilder.Editor.UI.Behaviors -{ - /// - [Obsolete("Locking scene objects is obsoleted, consider using the 'Unlocked Objects' list in the Step window.")] - public class LockObjectMenuItem : MenuItem - { - /// - public override string DisplayedName { get; } = "Environment/Lock Object"; - - /// - public override IBehavior GetNewItem() - { - return new LockObjectBehavior(); - } - } -} diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/LockObjectMenuItem.cs.meta b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/LockObjectMenuItem.cs.meta deleted file mode 100644 index 77323bf50..000000000 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/LockObjectMenuItem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2a78faa7b5fe9e341a9f9bfea42182d8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/UnlockObjectMenuItem.cs b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/UnlockObjectMenuItem.cs deleted file mode 100644 index be9d88de2..000000000 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/UnlockObjectMenuItem.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using VRBuilder.Core.Behaviors; -using VRBuilder.Editor.UI.StepInspector.Menu; - -namespace VRBuilder.Editor.UI.Behaviors -{ - /// - [Obsolete("Locking scene objects is obsoleted, consider using the 'Unlocked Objects' list in the Step window.")] - public class UnlockObjectMenuItem : MenuItem - { - /// - public override string DisplayedName { get; } = "Environment/Unlock Object"; - - /// - public override IBehavior GetNewItem() - { - return new UnlockObjectBehavior(); - } - } -} diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/UnlockObjectMenuItem.cs.meta b/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/UnlockObjectMenuItem.cs.meta deleted file mode 100644 index 192ed403d..000000000 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/UnlockObjectMenuItem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 39b5f15f7005ffb4dba03dc7ca1a54c5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/ConfettiBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/ConfettiBehavior.cs index c035d7632..8a9ed1600 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/ConfettiBehavior.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/ConfettiBehavior.cs @@ -1,4 +1,5 @@ using Newtonsoft.Json; +using System; using System.Collections; using System.Collections.Generic; using System.Runtime.Serialization; @@ -35,11 +36,14 @@ public class EntityData : IBehaviorData, IBehaviorExecutionStages /// Name of the process object where to spawn the confetti machine. /// Only needed if "Spawn Above User" is not checked. /// -#if CREATOR_PRO - [OptionalValue] -#endif [DataMember] [DisplayName("Position Provider")] + public SingleSceneObjectReference ConfettiPosition { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use ConfettiPosition instead.")] + [LegacyProperty(nameof(ConfettiPosition))] public SceneObjectReference PositionProvider { get; set; } /// @@ -79,7 +83,7 @@ public string Name string positionProvider = "user"; if (IsAboveUser == false) { - positionProvider = PositionProvider.IsEmpty() ? "[NULL]" : PositionProvider.Value.GameObject.name; + positionProvider = ConfettiPosition.HasValue() ? ConfettiPosition.Value.GameObject.name : "[NULL]"; } return $"Spawn confetti on {positionProvider}"; @@ -92,19 +96,37 @@ public string Name private const float distanceAboveUser = 3f; [JsonConstructor, Preserve] - public ConfettiBehavior() : this(true, "", "", defaultRadius, defaultDuration, BehaviorExecutionStages.Activation) + public ConfettiBehavior() : this(true, Guid.Empty, "", defaultRadius, defaultDuration, BehaviorExecutionStages.Activation) { } public ConfettiBehavior(bool isAboveUser, ISceneObject positionProvider, string confettiMachinePrefabPath, float radius, float duration, BehaviorExecutionStages executionStages) - : this(isAboveUser, ProcessReferenceUtils.GetNameFrom(positionProvider), confettiMachinePrefabPath, radius, duration, executionStages) + : this(isAboveUser, ProcessReferenceUtils.GetUniqueIdFrom(positionProvider), confettiMachinePrefabPath, radius, duration, executionStages) { } + [Obsolete("This constructor is obsolete and will be removed in the next major version.")] public ConfettiBehavior(bool isAboveUser, string positionProviderSceneObjectName, string confettiMachinePrefabPath, float radius, float duration, BehaviorExecutionStages executionStages) { Data.IsAboveUser = isAboveUser; - Data.PositionProvider = new SceneObjectReference(positionProviderSceneObjectName); + Guid guid = Guid.Empty; + Guid.TryParse(positionProviderSceneObjectName, out guid); + Data.ConfettiPosition = new SingleSceneObjectReference(guid); + Data.ConfettiMachinePrefabPath = confettiMachinePrefabPath; + Data.AreaRadius = radius; + Data.Duration = duration; + Data.ExecutionStages = executionStages; + + if (string.IsNullOrEmpty(Data.ConfettiMachinePrefabPath) && RuntimeConfigurator.Exists) + { + Data.ConfettiMachinePrefabPath = RuntimeConfigurator.Configuration.SceneConfiguration.DefaultConfettiPrefab; + } + } + + public ConfettiBehavior(bool isAboveUser, Guid positionProviderId, string confettiMachinePrefabPath, float radius, float duration, BehaviorExecutionStages executionStages) + { + Data.IsAboveUser = isAboveUser; + Data.ConfettiPosition = new SingleSceneObjectReference(positionProviderId); Data.ConfettiMachinePrefabPath = confettiMachinePrefabPath; Data.AreaRadius = radius; Data.Duration = duration; @@ -158,7 +180,7 @@ public override void Start() } else { - CreateConfettiMachine(Data.PositionProvider.Value.GameObject.transform.position); + CreateConfettiMachine(Data.ConfettiPosition.Value.GameObject.transform.position); } if (Data.Duration > 0f) diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/ControlParticleEmissionBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/ControlParticleEmissionBehavior.cs index 62453b0f9..46b6e2e0f 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/ControlParticleEmissionBehavior.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/ControlParticleEmissionBehavior.cs @@ -1,13 +1,12 @@ using Newtonsoft.Json; +using System; using System.Collections; -using System.Collections.Generic; +using System.Linq; using System.Runtime.Serialization; using UnityEngine.Scripting; using VRBuilder.Core.Attributes; -using VRBuilder.Core.Configuration; using VRBuilder.Core.Properties; using VRBuilder.Core.SceneObjects; -using VRBuilder.Core.Settings; namespace VRBuilder.Core.Behaviors { @@ -27,6 +26,12 @@ public class EntityData : IBehaviorData /// Identifies the particle system property to control. /// [DataMember] + public MultipleScenePropertyReference Targets { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use Targets instead.")] + [LegacyProperty(nameof(Targets))] public PropertyReferenceOrTagSelectableValue Target { get; set; } /// @@ -45,13 +50,8 @@ public string Name { get { - string property = Target.FirstValue.IsEmpty() ? "[NULL]" : Target.FirstValue.Value.SceneObject.GameObject.name; - string tag = SceneObjectTags.Instance.GetLabel(Target.SecondValue.Guid); - tag = string.IsNullOrEmpty(tag) ? "" : tag; - string action = EmitParticles ? "start" : "stop"; - action = Target.IsFirstValueSelected ? action + "s" : action; - string target = Target.IsFirstValueSelected ? property : $"Objects with tag {tag}"; - return $"{target} {action} emitting particles"; + string action = EmitParticles ? "Start" : "Stop"; + return $"{action} emitting particles on {Targets}"; } } } @@ -65,24 +65,13 @@ public ActivatingProcess(EntityData data) : base(data) /// public override void Start() { - List targetProperties = new List(); - - if(Data.Target.IsFirstValueSelected) - { - targetProperties.Add(Data.Target.FirstValue.Value); - } - else - { - targetProperties.AddRange(RuntimeConfigurator.Configuration.SceneObjectRegistry.GetPropertyByTag(Data.Target.SecondValue.Guid)); - } - - if(Data.EmitParticles) + if (Data.EmitParticles) { - targetProperties.ForEach(property => property.StartEmission()); + Data.Targets.Values.ToList().ForEach(property => property.StartEmission()); } else { - targetProperties.ForEach(property => property.StopEmission()); + Data.Targets.Values.ToList().ForEach(property => property.StopEmission()); } } @@ -111,7 +100,7 @@ public ControlParticleEmissionBehavior() : this(default) public ControlParticleEmissionBehavior(bool emitParticles) { Data.EmitParticles = emitParticles; - Data.Target = new PropertyReferenceOrTagSelectableValue(); + Data.Targets = new MultipleScenePropertyReference(); } /// diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/DisableGameObjectBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/DisableGameObjectBehavior.cs index 1044dfba5..1f1eb3c9a 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/DisableGameObjectBehavior.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/DisableGameObjectBehavior.cs @@ -1,4 +1,5 @@ using Newtonsoft.Json; +using System; using System.Runtime.Serialization; using UnityEngine.Scripting; using VRBuilder.Core.Attributes; @@ -11,6 +12,7 @@ namespace VRBuilder.Core.Behaviors /// /// Disables gameObject of target ISceneObject. /// + [Obsolete("Use SetObjectsEnabledBehavior instead. This behavior is obsolete and will be removed in the next major version.")] [DataContract(IsReference = true)] [HelpLink("https://www.mindport.co/vr-builder/manual/default-behaviors/disable-object")] public class DisableGameObjectBehavior : Behavior diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/EnableGameObjectBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/EnableGameObjectBehavior.cs index 1eb15568d..f6a1e8523 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/EnableGameObjectBehavior.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/EnableGameObjectBehavior.cs @@ -1,4 +1,5 @@ using Newtonsoft.Json; +using System; using System.Runtime.Serialization; using UnityEngine.Scripting; using VRBuilder.Core.Attributes; @@ -11,6 +12,7 @@ namespace VRBuilder.Core.Behaviors /// /// Enables gameObject of target ISceneObject. /// + [Obsolete("Use SetObjectsEnabledBehavior instead. This behavior is obsolete and will be removed in the next major version.")] [DataContract(IsReference = true)] [HelpLink("https://www.mindport.co/vr-builder/manual/default-behaviors/enable-object")] public class EnableGameObjectBehavior : Behavior @@ -60,7 +62,7 @@ public override void Start() RuntimeConfigurator.Configuration.SceneObjectManager.SetSceneObjectActive(Data.Target.Value, true); } } - + private class DeactivatingProcess : InstantProcess { public DeactivatingProcess(EntityData data) : base(data) diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/GoToChapterBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/GoToChapterBehavior.cs index 0fe54470d..5a887e88a 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/GoToChapterBehavior.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/GoToChapterBehavior.cs @@ -1,10 +1,10 @@ using Newtonsoft.Json; +using System; using System.Collections; +using System.Linq; using System.Runtime.Serialization; -using VRBuilder.Core.Attributes; using UnityEngine.Scripting; -using System; -using System.Linq; +using VRBuilder.Core.Attributes; namespace VRBuilder.Core.Behaviors { @@ -29,7 +29,7 @@ public class EntityData : IBehaviorData } [JsonConstructor, Preserve] - public GoToChapterBehavior() : this (Guid.Empty) + public GoToChapterBehavior() : this(Guid.Empty) { } @@ -48,6 +48,17 @@ public ActivatingProcess(EntityData data) : base(data) /// public override void Start() { + if (Data.ChapterGuid == null || Data.ChapterGuid == Guid.Empty) + { + return; + } + + IChapter chapter = ProcessRunner.Current.Data.Chapters.FirstOrDefault(chapter => chapter.ChapterMetadata.Guid == Data.ChapterGuid); + + if (chapter != null) + { + ProcessRunner.SetNextChapter(chapter); + } } /// @@ -59,18 +70,6 @@ public override IEnumerator Update() /// public override void End() { - if(Data.ChapterGuid == null || Data.ChapterGuid == Guid.Empty) - { - return; - } - - IChapter chapter = ProcessRunner.Current.Data.Chapters.FirstOrDefault(chapter => chapter.ChapterMetadata.Guid == Data.ChapterGuid); - - if (chapter != null) - { - ProcessRunner.SetNextChapter(chapter); - ProcessRunner.SkipCurrentChapter(); - } } /// diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/HighlightObjectBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/HighlightObjectBehavior.cs index 42c89b60f..3ccacfaf5 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/HighlightObjectBehavior.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/HighlightObjectBehavior.cs @@ -1,12 +1,13 @@ +using Newtonsoft.Json; +using System; using System.Runtime.Serialization; +using UnityEngine; +using UnityEngine.Scripting; using VRBuilder.Core.Attributes; using VRBuilder.Core.Configuration.Modes; -using VRBuilder.Core.SceneObjects; using VRBuilder.Core.Properties; +using VRBuilder.Core.SceneObjects; using VRBuilder.Core.Utils; -using UnityEngine; -using Newtonsoft.Json; -using UnityEngine.Scripting; namespace VRBuilder.Core.Behaviors { @@ -46,7 +47,13 @@ public Color HighlightColor /// Target scene object to be highlighted. /// [DataMember] - [DisplayName("Object")] + [DisplayName("Objects")] + public MultipleScenePropertyReference TargetObjects { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TargetObjects instead.")] + [LegacyProperty(nameof(TargetObjects))] public ScenePropertyReference ObjectToHighlight { get; set; } /// @@ -54,14 +61,7 @@ public Color HighlightColor /// [IgnoreDataMember] - public string Name - { - get - { - string objectToHighlight = ObjectToHighlight.IsEmpty() ? "[NULL]" : ObjectToHighlight.Value.SceneObject.GameObject.name; - return $"Highlight {objectToHighlight}"; - } - } + public string Name => $"Highlight {TargetObjects}"; } private class ActivatingProcess : InstantProcess @@ -73,7 +73,10 @@ public ActivatingProcess(EntityData data) : base(data) /// public override void Start() { - Data.ObjectToHighlight.Value?.Highlight(Data.HighlightColor); + foreach (IHighlightProperty highlightProperty in Data.TargetObjects.Values) + { + highlightProperty?.Highlight(Data.HighlightColor); + } } } @@ -86,7 +89,10 @@ public DeactivatingProcess(EntityData data) : base(data) /// public override void Start() { - Data.ObjectToHighlight.Value?.Unhighlight(); + foreach (IHighlightProperty highlightProperty in Data.TargetObjects.Values) + { + highlightProperty?.Unhighlight(); + } } } @@ -104,13 +110,13 @@ public EntityConfigurator(EntityData data) : base(data) } [JsonConstructor, Preserve] - public HighlightObjectBehavior() : this("", new Color32(231, 64, 255, 126)) + public HighlightObjectBehavior() : this(Guid.Empty, new Color32(231, 64, 255, 126)) { } - public HighlightObjectBehavior(string sceneObjectName, Color highlightColor) + public HighlightObjectBehavior(Guid objectId, Color highlightColor) { - Data.ObjectToHighlight = new ScenePropertyReference(sceneObjectName); + Data.TargetObjects = new MultipleScenePropertyReference(objectId); Data.HighlightColor = highlightColor; } @@ -118,7 +124,7 @@ public HighlightObjectBehavior(string sceneObjectName, Color highlightColor) { } - public HighlightObjectBehavior(IHighlightProperty target, Color highlightColor) : this(ProcessReferenceUtils.GetNameFrom(target), highlightColor) + public HighlightObjectBehavior(IHighlightProperty target, Color highlightColor) : this(ProcessReferenceUtils.GetUniqueIdFrom(target), highlightColor) { } diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/LockObjectBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/LockObjectBehavior.cs deleted file mode 100644 index b68461a05..000000000 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/LockObjectBehavior.cs +++ /dev/null @@ -1,116 +0,0 @@ -using Newtonsoft.Json; -using System; -using System.Runtime.Serialization; -using UnityEngine.Scripting; -using VRBuilder.Core.Attributes; -using VRBuilder.Core.SceneObjects; -using VRBuilder.Core.Utils; - -namespace VRBuilder.Core.Behaviors -{ - /// - /// Behavior that locks the target SceneObject while active, and unlocks it again on deactivation (unless it was locked initially). - /// - [Obsolete("Locking scene objects is obsoleted, consider using the 'Unlocked Objects' list in the Step window.")] - [DataContract(IsReference = true)] - public class LockObjectBehavior : Behavior - { - /// - /// "Lock object" behavior's data. - /// - [DisplayName("Lock Object")] - [DataContract(IsReference = true)] - public class EntityData : IBehaviorData - { - /// - /// The object to lock. - /// - [DataMember] - [DisplayName("Object")] - public SceneObjectReference Target { get; set; } - - /// - /// If set to true, the behavior will unlock the at the end of the step. - /// - [DataMember] - [DisplayName("Lock only during this step")] - public bool IsOnlyLockedInStep { get; set; } - - /// - /// A field to record if the object was locked at the beginning of the step. - /// - public bool WasLockedOnActivate { get; set; } - - /// - public Metadata Metadata { get; set; } - - /// - public string Name { get; set; } - } - - private class ActivatingProcess : InstantProcess - { - public ActivatingProcess(EntityData data) : base(data) - { - } - - /// - public override void Start() - { - Data.WasLockedOnActivate = Data.Target.Value.IsLocked; - if (Data.WasLockedOnActivate == false) - { - Data.Target.Value.SetLocked(true); - } - } - } - - private class DeactivatingProcess : InstantProcess - { - public DeactivatingProcess(EntityData data) : base(data) - { - } - - /// - public override void Start() - { - if (Data.WasLockedOnActivate == false && Data.IsOnlyLockedInStep) - { - Data.Target.Value.SetLocked(false); - } - } - } - - [JsonConstructor, Preserve] - public LockObjectBehavior() : this("") - { - } - - public LockObjectBehavior(ISceneObject target) : this(ProcessReferenceUtils.GetNameFrom(target)) - { - } - - public LockObjectBehavior(ISceneObject target, bool isOnlyLockedInStep) : this(ProcessReferenceUtils.GetNameFrom(target), isOnlyLockedInStep: isOnlyLockedInStep) - { - } - - public LockObjectBehavior(string targetName, string name = "Lock Object", bool isOnlyLockedInStep = true) - { - Data.Target = new SceneObjectReference(targetName); - Data.Name = name; - Data.IsOnlyLockedInStep = isOnlyLockedInStep; - } - - /// - public override IStageProcess GetActivatingProcess() - { - return new ActivatingProcess(Data); - } - - /// - public override IStageProcess GetDeactivatingProcess() - { - return new DeactivatingProcess(Data); - } - } -} diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/LockObjectBehavior.cs.meta b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/LockObjectBehavior.cs.meta deleted file mode 100644 index a6720c7af..000000000 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/LockObjectBehavior.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2dd39500cda166640afc88977491d839 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/MoveObjectBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/MoveObjectBehavior.cs index 512b24112..dc00fb41c 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/MoveObjectBehavior.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/MoveObjectBehavior.cs @@ -1,4 +1,5 @@ using Newtonsoft.Json; +using System; using System.Collections; using System.Runtime.Serialization; using UnityEngine; @@ -31,6 +32,12 @@ public class EntityData : IBehaviorData /// [DataMember] [DisplayName("Object")] + public SingleSceneObjectReference TargetObject { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TargetObject instead.")] + [LegacyProperty(nameof(TargetObject))] public SceneObjectReference Target { get; set; } /// @@ -38,14 +45,17 @@ public class EntityData : IBehaviorData /// [DataMember] [DisplayName("Final position provider")] + public SingleSceneObjectReference FinalPosition { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use FinalPosition instead.")] + [LegacyProperty(nameof(FinalPosition))] public SceneObjectReference PositionProvider { get; set; } /// /// Duration of the transition. If duration is equal or less than zero, target object movement is instantaneous. /// -#if CREATOR_PRO - [OptionalValue] -#endif [DataMember] [DisplayName("Animation (in seconds)")] public float Duration { get; set; } @@ -59,15 +69,7 @@ public class EntityData : IBehaviorData /// [IgnoreDataMember] - public string Name - { - get - { - string target = Target.IsEmpty() ? "[NULL]" : Target.Value.GameObject.name; - string positionProvider = PositionProvider.IsEmpty() ? "[NULL]" : PositionProvider.Value.GameObject.name; - return $"Move {target} to {positionProvider}"; - } - } + public string Name => $"Move {TargetObject} to {FinalPosition}"; } private class ActivatingProcess : StageProcess @@ -83,9 +85,9 @@ public override void Start() { startingTime = Time.time; - RuntimeConfigurator.Configuration.SceneObjectManager.RequestAuthority(Data.Target.Value); + RuntimeConfigurator.Configuration.SceneObjectManager.RequestAuthority(Data.TargetObject.Value); - Rigidbody movingRigidbody = Data.Target.Value.GameObject.GetComponent(); + Rigidbody movingRigidbody = Data.TargetObject.Value.GameObject.GetComponent(); if (movingRigidbody != null) { movingRigidbody.velocity = Vector3.zero; @@ -96,23 +98,15 @@ public override void Start() /// public override IEnumerator Update() { - Transform movingTransform = Data.Target.Value.GameObject.transform; - Transform targetPositionTransform = Data.PositionProvider.Value.GameObject.transform; + Transform movingTransform = Data.TargetObject.Value.GameObject.transform; + Transform targetPositionTransform = Data.FinalPosition.Value.GameObject.transform; Vector3 initialPosition = movingTransform.position; Quaternion initialRotation = movingTransform.rotation; while (Time.time - startingTime < Data.Duration) { - RuntimeConfigurator.Configuration.SceneObjectManager.RequestAuthority(Data.Target.Value); - - if (movingTransform == null || movingTransform.Equals(null) || targetPositionTransform == null || targetPositionTransform.Equals(null)) - { - string warningFormat = "The process scene object's game object is null, transition movement is not completed, behavior activation is forcefully finished."; - warningFormat += "Target object unique name: {0}, Position provider's unique name: {1}"; - Debug.LogWarningFormat(warningFormat, Data.Target.UniqueName, Data.PositionProvider.UniqueName); - yield break; - } + RuntimeConfigurator.Configuration.SceneObjectManager.RequestAuthority(Data.TargetObject.Value); float progress = (Time.time - startingTime) / Data.Duration; @@ -126,15 +120,15 @@ public override IEnumerator Update() /// public override void End() { - RuntimeConfigurator.Configuration.SceneObjectManager.RequestAuthority(Data.Target.Value); + RuntimeConfigurator.Configuration.SceneObjectManager.RequestAuthority(Data.TargetObject.Value); - Transform movingTransform = Data.Target.Value.GameObject.transform; - Transform targetPositionTransform = Data.PositionProvider.Value.GameObject.transform; + Transform movingTransform = Data.TargetObject.Value.GameObject.transform; + Transform targetPositionTransform = Data.FinalPosition.Value.GameObject.transform; movingTransform.position = targetPositionTransform.position; movingTransform.rotation = targetPositionTransform.rotation; - Rigidbody movingRigidbody = Data.Target.Value.GameObject.GetComponent(); + Rigidbody movingRigidbody = Data.TargetObject.Value.GameObject.GetComponent(); if (movingRigidbody != null) { movingRigidbody.velocity = Vector3.zero; @@ -148,18 +142,18 @@ public override void FastForward() } [JsonConstructor, Preserve] - public MoveObjectBehavior() : this("", "", 0f) + public MoveObjectBehavior() : this(Guid.Empty, Guid.Empty, 0f) { } - public MoveObjectBehavior(ISceneObject target, ISceneObject positionProvider, float duration) : this(ProcessReferenceUtils.GetNameFrom(target), ProcessReferenceUtils.GetNameFrom(positionProvider), duration) + public MoveObjectBehavior(ISceneObject target, ISceneObject positionProvider, float duration) : this(ProcessReferenceUtils.GetUniqueIdFrom(target), ProcessReferenceUtils.GetUniqueIdFrom(positionProvider), duration) { } - public MoveObjectBehavior(string targetName, string positionProviderName, float duration) + public MoveObjectBehavior(Guid targetObjectId, Guid finalPositionId, float duration) { - Data.Target = new SceneObjectReference(targetName); - Data.PositionProvider = new SceneObjectReference(positionProviderName); + Data.TargetObject = new SingleSceneObjectReference(targetObjectId); + Data.FinalPosition = new SingleSceneObjectReference(finalPositionId); Data.Duration = duration; Data.AnimationCurve = AnimationCurve.Linear(0f, 0f, 1f, 1f); } diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/ResetValueBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/ResetValueBehavior.cs index 851502bf5..c843e545c 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/ResetValueBehavior.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/ResetValueBehavior.cs @@ -1,4 +1,5 @@ using Newtonsoft.Json; +using System; using System.Collections; using System.Runtime.Serialization; using UnityEngine.Scripting; @@ -24,7 +25,13 @@ public class ResetValueBehavior : Behavior public class EntityData : IBehaviorData { [DataMember] - [DisplayName("Data Property")] + [DisplayName("Data Properties")] + public MultipleScenePropertyReference Properties; + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use Properties instead.")] + [LegacyProperty(nameof(Properties))] public ScenePropertyReference DataProperty { get; set; } /// @@ -32,14 +39,7 @@ public class EntityData : IBehaviorData /// [IgnoreDataMember] - public string Name - { - get - { - string dataProperty = DataProperty.IsEmpty() ? "[NULL]" : DataProperty.Value.SceneObject.GameObject.name; - return $"Reset {dataProperty} to default"; - } - } + public string Name => $"Reset {Properties} to default"; } private class ActivatingProcess : StageProcess @@ -51,6 +51,10 @@ public ActivatingProcess(EntityData data) : base(data) /// public override void Start() { + foreach (IDataPropertyBase dataProperty in Data.Properties.Values) + { + dataProperty.ResetValue(); + } } /// @@ -62,7 +66,6 @@ public override IEnumerator Update() /// public override void End() { - Data.DataProperty.Value.ResetValue(); } /// @@ -72,16 +75,16 @@ public override void FastForward() } [JsonConstructor, Preserve] - public ResetValueBehavior() : this("") + public ResetValueBehavior() : this(Guid.Empty) { } - public ResetValueBehavior(string propertyName) + public ResetValueBehavior(Guid propertyId) { - Data.DataProperty = new ScenePropertyReference(propertyName); + Data.Properties = new MultipleScenePropertyReference(propertyId); } - public ResetValueBehavior(IDataPropertyBase property) : this(ProcessReferenceUtils.GetNameFrom(property)) + public ResetValueBehavior(IDataPropertyBase property) : this(ProcessReferenceUtils.GetUniqueIdFrom(property)) { } diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/ScalingBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/ScalingBehavior.cs index e97c1b3aa..aa41011d2 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/ScalingBehavior.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/ScalingBehavior.cs @@ -1,5 +1,8 @@ using Newtonsoft.Json; +using System; using System.Collections; +using System.Collections.Generic; +using System.Linq; using System.Runtime.Serialization; using UnityEngine; using UnityEngine.Scripting; @@ -19,6 +22,13 @@ public class EntityData : IBehaviorData { // Process object to scale. [DataMember] + [DisplayName("Target Objects")] + public MultipleSceneObjectReference Targets { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use Targets instead.")] + [LegacyProperty(nameof(Targets))] public SceneObjectReference Target { get; set; } // Target scale. @@ -27,9 +37,6 @@ public class EntityData : IBehaviorData public Vector3 TargetScale { get; set; } // Duration of the animation in seconds. -#if CREATOR_PRO - [OptionalValue] -#endif [DataMember] [DisplayName("Animation Duration (in seconds)")] public float Duration { get; set; } @@ -42,24 +49,17 @@ public class EntityData : IBehaviorData /// [IgnoreDataMember] - public string Name - { - get - { - string target = Target.IsEmpty() ? "[NULL]" : Target.Value.GameObject.name; - return $"Scale {target} to {TargetScale.ToString()}"; - } - } + public string Name => $"Scale {Targets} to {TargetScale}"; } [JsonConstructor, Preserve] - public ScalingBehavior() : this(new SceneObjectReference(), Vector3.one, 0f) + public ScalingBehavior() : this(new ISceneObject[0], Vector3.one, 0f) { } - public ScalingBehavior(SceneObjectReference target, Vector3 targetScale, float duration) + public ScalingBehavior(IEnumerable targets, Vector3 targetScale, float duration) { - Data.Target = target; + Data.Targets = new MultipleSceneObjectReference(targets.Select(target => target.Guid)); Data.TargetScale = targetScale; Data.Duration = duration; Data.AnimationCurve = AnimationCurve.Linear(0f, 0f, 1f, 1f); @@ -81,27 +81,37 @@ public override IEnumerator Update() { float startedAt = Time.time; - Transform scaledTransform = Data.Target.Value.GameObject.transform; + ISceneObject[] sceneObjects = Data.Targets.Values.ToArray(); + Transform[] scaledTransforms = sceneObjects.Select(so => so.GameObject.transform).ToArray(); + Vector3[] initialScales = scaledTransforms.Select(t => t.localScale).ToArray(); + + //Transform scaledTransform = Data.Target.Value.GameObject.transform; - Vector3 initialScale = scaledTransform.localScale; + //Vector3 initialScale = scaledTransform.localScale; while (Time.time - startedAt < Data.Duration) { - RuntimeConfigurator.Configuration.SceneObjectManager.RequestAuthority(Data.Target.Value); - - float progress = (Time.time - startedAt) / Data.Duration; - scaledTransform.localScale = initialScale + (Data.TargetScale - initialScale) * Data.AnimationCurve.Evaluate(progress); - yield return null; + for (int i = 0; i < sceneObjects.Length; i++) + { + RuntimeConfigurator.Configuration.SceneObjectManager.RequestAuthority(sceneObjects[i]); + + float progress = (Time.time - startedAt) / Data.Duration; + scaledTransforms[i].localScale = initialScales[i] + (Data.TargetScale - initialScales[i]) * Data.AnimationCurve.Evaluate(progress); + yield return null; + } } } /// public override void End() { - RuntimeConfigurator.Configuration.SceneObjectManager.RequestAuthority(Data.Target.Value); + foreach (ISceneObject sceneObject in Data.Targets.Values) + { + RuntimeConfigurator.Configuration.SceneObjectManager.RequestAuthority(sceneObject); - Transform scaledTransform = Data.Target.Value.GameObject.transform; - scaledTransform.localScale = Data.TargetScale; + Transform scaledTransform = sceneObject.GameObject.transform; + scaledTransform.localScale = Data.TargetScale; + } } /// diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetComponentEnabledBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetComponentEnabledBehavior.cs index d538900e1..dec9189e9 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetComponentEnabledBehavior.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetComponentEnabledBehavior.cs @@ -1,10 +1,10 @@ using Newtonsoft.Json; +using System; using System.Runtime.Serialization; using UnityEngine.Scripting; using VRBuilder.Core.Attributes; using VRBuilder.Core.Configuration; using VRBuilder.Core.SceneObjects; -using VRBuilder.Core.Utils; namespace VRBuilder.Core.Behaviors { @@ -27,6 +27,12 @@ public class EntityData : IBehaviorData /// [DataMember] [HideInProcessInspector] + public MultipleSceneObjectReference TargetObjects { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TargetObjects instead.")] + [LegacyProperty(nameof(TargetObjects))] public SceneObjectReference Target { get; set; } /// @@ -59,10 +65,9 @@ public string Name { get { - string target = Target.IsEmpty() ? "[NULL]" : Target.Value.GameObject.name; string setEnabled = SetEnabled ? "Enable" : "Disable"; string componentType = string.IsNullOrEmpty(ComponentType) ? "" : ComponentType; - return $"{setEnabled} {componentType} on {target}"; + return $"{setEnabled} {componentType} for {TargetObjects}"; } } } @@ -76,7 +81,10 @@ public ActivatingProcess(EntityData data) : base(data) /// public override void Start() { - RuntimeConfigurator.Configuration.SceneObjectManager.SetComponentActive(Data.Target.Value, Data.ComponentType, Data.SetEnabled); + foreach (ISceneObject sceneObject in Data.TargetObjects.Values) + { + RuntimeConfigurator.Configuration.SceneObjectManager.SetComponentActive(sceneObject, Data.ComponentType, Data.SetEnabled); + } } } @@ -91,27 +99,26 @@ public override void Start() { if (Data.RevertOnDeactivation) { - RuntimeConfigurator.Configuration.SceneObjectManager.SetComponentActive(Data.Target.Value, Data.ComponentType, !Data.SetEnabled); + foreach (ISceneObject sceneObject in Data.TargetObjects.Values) + { + RuntimeConfigurator.Configuration.SceneObjectManager.SetComponentActive(sceneObject, Data.ComponentType, !Data.SetEnabled); + } } } } [JsonConstructor, Preserve] - public SetComponentEnabledBehavior() : this("", "", false, false) - { - } - - public SetComponentEnabledBehavior(bool setEnabled) : this("", "", setEnabled, false) + public SetComponentEnabledBehavior() : this(Guid.Empty, "", false, false) { } - public SetComponentEnabledBehavior(ISceneObject targetObject, string componentType, bool setEnabled, bool revertOnDeactivate) : this(ProcessReferenceUtils.GetNameFrom(targetObject), componentType, setEnabled, revertOnDeactivate) + public SetComponentEnabledBehavior(bool setEnabled, string name = "Set Component Enabled") : this(Guid.Empty, "", setEnabled, false) { } - public SetComponentEnabledBehavior(string targetObject, string componentType, bool setEnabled, bool revertOnDeactivate) + public SetComponentEnabledBehavior(Guid objectId, string componentType, bool setEnabled, bool revertOnDeactivate) { - Data.Target = new SceneObjectReference(targetObject); + Data.TargetObjects = new MultipleSceneObjectReference(objectId); Data.ComponentType = componentType; Data.SetEnabled = setEnabled; Data.RevertOnDeactivation = revertOnDeactivate; diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetComponentEnabledByTagBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetComponentEnabledByTagBehavior.cs index d524bfef8..be5aea81b 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetComponentEnabledByTagBehavior.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetComponentEnabledByTagBehavior.cs @@ -1,12 +1,10 @@ using Newtonsoft.Json; using System; -using System.Collections.Generic; using System.Runtime.Serialization; using UnityEngine.Scripting; using VRBuilder.Core.Attributes; using VRBuilder.Core.Configuration; using VRBuilder.Core.SceneObjects; -using VRBuilder.Core.Settings; namespace VRBuilder.Core.Behaviors { @@ -15,6 +13,7 @@ namespace VRBuilder.Core.Behaviors /// [DataContract(IsReference = true)] [HelpLink("https://www.mindport.co/vr-builder/manual/default-behaviors/enable-object")] + [Obsolete("Use SetComponentEnabledBehavior instead.")] public class SetComponentEnabledByTagBehavior : Behavior { /// @@ -29,6 +28,12 @@ public class EntityData : IBehaviorData /// [DataMember] [HideInProcessInspector] + public MultipleSceneObjectReference TargetObjects { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TargetObjects instead.")] + [LegacyProperty(nameof(TargetObjects))] public SceneObjectTag TargetTag { get; set; } /// @@ -61,11 +66,9 @@ public string Name { get { - string targetTag = SceneObjectTags.Instance.GetLabel(TargetTag.Guid); - targetTag = string.IsNullOrEmpty(targetTag) ? "" : targetTag; string setEnabled = SetEnabled ? "Enable" : "Disable"; string componentType = string.IsNullOrEmpty(ComponentType) ? "" : ComponentType; - return $"{setEnabled} {componentType} for {targetTag} objects"; + return $"{setEnabled} {componentType} for {TargetObjects}"; } } } @@ -79,9 +82,7 @@ public ActivatingProcess(EntityData data) : base(data) /// public override void Start() { - IEnumerable sceneObjects = RuntimeConfigurator.Configuration.SceneObjectRegistry.GetByTag(Data.TargetTag.Guid); - - foreach(ISceneObject sceneObject in sceneObjects) + foreach (ISceneObject sceneObject in Data.TargetObjects.Values) { RuntimeConfigurator.Configuration.SceneObjectManager.SetComponentActive(sceneObject, Data.ComponentType, Data.SetEnabled); } @@ -99,9 +100,7 @@ public override void Start() { if (Data.RevertOnDeactivation) { - IEnumerable sceneObjects = RuntimeConfigurator.Configuration.SceneObjectRegistry.GetByTag(Data.TargetTag.Guid); - - foreach (ISceneObject sceneObject in sceneObjects) + foreach (ISceneObject sceneObject in Data.TargetObjects.Values) { RuntimeConfigurator.Configuration.SceneObjectManager.SetComponentActive(sceneObject, Data.ComponentType, !Data.SetEnabled); } @@ -118,9 +117,9 @@ public SetComponentEnabledByTagBehavior(bool setEnabled, string name = "Set Comp { } - public SetComponentEnabledByTagBehavior(Guid tagGuid, string componentType, bool setEnabled, bool revertOnDeactivate) + public SetComponentEnabledByTagBehavior(Guid objectId, string componentType, bool setEnabled, bool revertOnDeactivate) { - Data.TargetTag = new SceneObjectTag(tagGuid); + Data.TargetObjects = new MultipleSceneObjectReference(objectId); Data.ComponentType = componentType; Data.SetEnabled = setEnabled; Data.RevertOnDeactivation = revertOnDeactivate; diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetObjectsEnabledBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetObjectsEnabledBehavior.cs new file mode 100644 index 000000000..e1a4e8015 --- /dev/null +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetObjectsEnabledBehavior.cs @@ -0,0 +1,115 @@ +using Newtonsoft.Json; +using System; +using System.Runtime.Serialization; +using UnityEngine.Scripting; +using VRBuilder.Core.Attributes; +using VRBuilder.Core.Configuration; +using VRBuilder.Core.SceneObjects; + +namespace VRBuilder.Core.Behaviors +{ + /// + /// Sets enabled or disabled all specified objects. + /// + [DataContract(IsReference = true)] + public class SetObjectsEnabledBehavior : Behavior + { + /// + /// Behavior data for . + /// + [DisplayName("Set Objects Enabled")] + [DataContract(IsReference = true)] + public class EntityData : IBehaviorData + { + /// + /// The objects to enable or disable. + /// + [DataMember] + [DisplayName("Objects")] + public MultipleSceneObjectReference TargetObjects { get; set; } + + [DataMember] + [HideInProcessInspector] + public bool SetEnabled { get; set; } + + [DataMember] + [DisplayName("Revert after step is complete")] + public bool RevertOnDeactivation { get; set; } + /// + public Metadata Metadata { get; set; } + + /// + [IgnoreDataMember] + public string Name + { + get + { + string setEnabled = SetEnabled ? "Enable" : "Disable"; + return $"{setEnabled} {TargetObjects}"; + } + } + } + + private class ActivatingProcess : InstantProcess + { + public ActivatingProcess(EntityData data) : base(data) + { + } + + /// + public override void Start() + { + foreach (ISceneObject sceneObject in Data.TargetObjects.Values) + { + RuntimeConfigurator.Configuration.SceneObjectManager.SetSceneObjectActive(sceneObject, Data.SetEnabled); + } + } + } + + private class DeactivatingProcess : InstantProcess + { + public DeactivatingProcess(EntityData data) : base(data) + { + } + + /// + public override void Start() + { + if (Data.RevertOnDeactivation) + { + foreach (ISceneObject sceneObject in Data.TargetObjects.Values) + { + RuntimeConfigurator.Configuration.SceneObjectManager.SetSceneObjectActive(sceneObject, !Data.SetEnabled); + } + } + } + } + + [JsonConstructor, Preserve] + public SetObjectsEnabledBehavior() : this(Guid.Empty, false) + { + } + + public SetObjectsEnabledBehavior(bool setEnabled) : this(Guid.Empty, setEnabled, false) + { + } + + public SetObjectsEnabledBehavior(Guid objectId, bool setEnabled, bool revertOnDeactivate = false) + { + Data.TargetObjects = new MultipleSceneObjectReference(objectId); + Data.SetEnabled = setEnabled; + Data.RevertOnDeactivation = revertOnDeactivate; + } + + /// + public override IStageProcess GetActivatingProcess() + { + return new ActivatingProcess(Data); + } + + public override IStageProcess GetDeactivatingProcess() + { + return new DeactivatingProcess(Data); + } + } +} diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableComponentByTagMenuItem.cs.meta b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetObjectsEnabledBehavior.cs.meta similarity index 83% rename from Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableComponentByTagMenuItem.cs.meta rename to Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetObjectsEnabledBehavior.cs.meta index a87001c5d..744f5b988 100644 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableComponentByTagMenuItem.cs.meta +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetObjectsEnabledBehavior.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: bd0185f7683b46f448ef62e829da3ebd +guid: 1db24f97171143f4689f9ff0c9145772 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetObjectsWithTagEnabledBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetObjectsWithTagEnabledBehavior.cs index 55858c9dd..64590f073 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetObjectsWithTagEnabledBehavior.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetObjectsWithTagEnabledBehavior.cs @@ -5,7 +5,6 @@ using VRBuilder.Core.Attributes; using VRBuilder.Core.Configuration; using VRBuilder.Core.SceneObjects; -using VRBuilder.Core.Settings; namespace VRBuilder.Core.Behaviors { @@ -13,6 +12,7 @@ namespace VRBuilder.Core.Behaviors /// Sets enabled or disabled all objects with a given tag. /// [DataContract(IsReference = true)] + [Obsolete("Use SetObjectsEnabledBehavior instead.")] public class SetObjectsWithTagEnabledBehavior : Behavior { /// @@ -23,10 +23,16 @@ public class SetObjectsWithTagEnabledBehavior : Behavior - /// The object to enable. + /// The objects to enable or disable. /// [DataMember] - [DisplayName("Tag")] + [DisplayName("Objects")] + public MultipleSceneObjectReference TargetObjects { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TargetObjects instead.")] + [LegacyProperty(nameof(TargetObjects))] public SceneObjectTag Tag { get; set; } [DataMember] @@ -46,10 +52,8 @@ public string Name { get { - string tag = SceneObjectTags.Instance.GetLabel(Tag.Guid); - tag = string.IsNullOrEmpty(tag) ? "" : tag; string setEnabled = SetEnabled ? "Enable" : "Disable"; - return $"{setEnabled} {tag} objects"; + return $"{setEnabled} {TargetObjects}"; } } } @@ -63,7 +67,7 @@ public ActivatingProcess(EntityData data) : base(data) /// public override void Start() { - foreach(ISceneObject sceneObject in RuntimeConfigurator.Configuration.SceneObjectRegistry.GetByTag(Data.Tag.Guid)) + foreach (ISceneObject sceneObject in Data.TargetObjects.Values) { RuntimeConfigurator.Configuration.SceneObjectManager.SetSceneObjectActive(sceneObject, Data.SetEnabled); } @@ -81,7 +85,7 @@ public override void Start() { if (Data.RevertOnDeactivation) { - foreach (ISceneObject sceneObject in RuntimeConfigurator.Configuration.SceneObjectRegistry.GetByTag(Data.Tag.Guid)) + foreach (ISceneObject sceneObject in Data.TargetObjects.Values) { RuntimeConfigurator.Configuration.SceneObjectManager.SetSceneObjectActive(sceneObject, !Data.SetEnabled); } @@ -98,9 +102,9 @@ public SetObjectsWithTagEnabledBehavior(bool setEnabled) : this(Guid.Empty, setE { } - public SetObjectsWithTagEnabledBehavior(Guid tag, bool setEnabled, bool revertOnDeactivate = false) + public SetObjectsWithTagEnabledBehavior(Guid objectId, bool setEnabled, bool revertOnDeactivate = false) { - Data.Tag = new SceneObjectTag(tag); + Data.TargetObjects = new MultipleSceneObjectReference(objectId); Data.SetEnabled = setEnabled; Data.RevertOnDeactivation = revertOnDeactivate; } diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetObjectsWithTagEnabledBehavior.cs.meta b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetObjectsWithTagEnabledBehavior.cs.meta index 7ef2fd515..ce95bf28c 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetObjectsWithTagEnabledBehavior.cs.meta +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetObjectsWithTagEnabledBehavior.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 04cee1b5e2c97a64eaaad8c15bfe7948 +guid: 36c16ab6be115064ca1758013479b54d MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetParentBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetParentBehavior.cs index df8b14f6f..52adc5f34 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetParentBehavior.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetParentBehavior.cs @@ -1,11 +1,12 @@ -using UnityEngine; using Newtonsoft.Json; +using System; using System.Collections; using System.Runtime.Serialization; +using UnityEngine; +using UnityEngine.Scripting; using VRBuilder.Core.Attributes; using VRBuilder.Core.SceneObjects; using VRBuilder.Core.Utils; -using UnityEngine.Scripting; namespace VRBuilder.Core.Behaviors { @@ -20,14 +21,33 @@ public class SetParentBehavior : Behavior [DataContract(IsReference = true)] public class EntityData : IBehaviorData { - // Process object to reparent. + /// + /// Process object to reparent. + /// [DataMember] + public SingleSceneObjectReference TargetObject { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TargetObject instead.")] + [LegacyProperty(nameof(TargetObject))] public SceneObjectReference Target { get; set; } - // New parent game object. + /// + /// New parent game object. + /// + [DataMember] + public SingleSceneObjectReference ParentObject { get; set; } + [DataMember] + [HideInProcessInspector] + [Obsolete("Use ParentObject instead.")] + [LegacyProperty(nameof(ParentObject))] public SceneObjectReference Parent { get; set; } + /// + /// If true, the object will be moved to the parent's transform. + /// [DataMember] [DisplayName("Snap to parent transform")] public bool SnapToParentTransform { get; set; } @@ -35,31 +55,22 @@ public class EntityData : IBehaviorData public Metadata Metadata { get; set; } [IgnoreDataMember] - public string Name - { - get - { - string target = Target.IsEmpty() ? "[NULL]" : Target.Value.GameObject.name; - string parent = Parent.IsEmpty() ? "[NULL]" : Parent.Value.GameObject.name; - - return Parent.IsEmpty() ? $"Unparent {target}" : $"Make {target} child of {parent}"; - } - } + public string Name => ParentObject.HasValue() ? $"Make {TargetObject} child of {ParentObject}" : $"Unparent {TargetObject}"; } [JsonConstructor, Preserve] - public SetParentBehavior() : this("", "") + public SetParentBehavior() : this(Guid.Empty, Guid.Empty) { } - public SetParentBehavior(ISceneObject target, ISceneObject parent, bool snapToParentTransform = false) : this(ProcessReferenceUtils.GetNameFrom(target), ProcessReferenceUtils.GetNameFrom(parent), snapToParentTransform) + public SetParentBehavior(ISceneObject target, ISceneObject parent, bool snapToParentTransform = false) : this(ProcessReferenceUtils.GetUniqueIdFrom(target), ProcessReferenceUtils.GetUniqueIdFrom(parent), snapToParentTransform) { } - public SetParentBehavior(string target, string parent, bool snapToParentTransform = false) + public SetParentBehavior(Guid target, Guid parent, bool snapToParentTransform = false) { - Data.Target = new SceneObjectReference(target); - Data.Parent = new SceneObjectReference(parent); + Data.TargetObject = new SingleSceneObjectReference(target); + Data.ParentObject = new SingleSceneObjectReference(parent); Data.SnapToParentTransform = snapToParentTransform; } @@ -72,37 +83,37 @@ public ActivatingProcess(EntityData data) : base(data) /// public override void Start() { - } - - /// - public override IEnumerator Update() - { - yield return null; - } - - /// - public override void End() - { - if (Data.Parent.Value == null) + if (Data.ParentObject.Value == null) { - Data.Target.Value.GameObject.transform.SetParent(null); + Data.TargetObject.Value.GameObject.transform.SetParent(null); } else { if (HasScaleIssues()) { - Debug.LogWarning($"'{Data.Target.Value.GameObject.name}' is being parented to a hierarchy that has changes in rotation and scale. This may result in a distorted object after parenting."); + Debug.LogWarning($"'{Data.TargetObject.Value.GameObject.name}' is being parented to a hierarchy that has changes in rotation and scale. This may result in a distorted object after parenting."); } if (Data.SnapToParentTransform) { - Data.Target.Value.GameObject.transform.SetPositionAndRotation(Data.Parent.Value.GameObject.transform.position, Data.Parent.Value.GameObject.transform.rotation); + Data.TargetObject.Value.GameObject.transform.SetPositionAndRotation(Data.ParentObject.Value.GameObject.transform.position, Data.ParentObject.Value.GameObject.transform.rotation); } - Data.Target.Value.GameObject.transform.SetParent(Data.Parent.Value.GameObject.transform, true); + Data.TargetObject.Value.GameObject.transform.SetParent(Data.ParentObject.Value.GameObject.transform, true); } } + /// + public override IEnumerator Update() + { + yield return null; + } + + /// + public override void End() + { + } + /// public override void FastForward() { @@ -110,11 +121,11 @@ public override void FastForward() private bool HasScaleIssues() { - Transform currentTransform = Data.Target.Value.GameObject.transform; - Transform parentTransform = Data.Parent.Value.GameObject.transform; + Transform currentTransform = Data.TargetObject.Value.GameObject.transform; + Transform parentTransform = Data.ParentObject.Value.GameObject.transform; bool changesScale = currentTransform.localScale != Vector3.one; - bool changesRotation = currentTransform.rotation != parentTransform.rotation && Data.SnapToParentTransform == false; + bool changesRotation = currentTransform.rotation != parentTransform.rotation && Data.SnapToParentTransform == false; while (parentTransform != null) { diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetValueBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetValueBehavior.cs index 4af10059f..c2b315901 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetValueBehavior.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/SetValueBehavior.cs @@ -1,4 +1,5 @@ using Newtonsoft.Json; +using System; using System.Collections; using System.Runtime.Serialization; using UnityEngine.Scripting; @@ -25,6 +26,12 @@ public class EntityData : IBehaviorData { [DataMember] [DisplayName("Data Property")] + public MultipleScenePropertyReference> DataProperties { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use DataProperties instead.")] + [LegacyProperty(nameof(DataProperties))] public ScenePropertyReference> DataProperty { get; set; } [DataMember] @@ -36,15 +43,7 @@ public class EntityData : IBehaviorData /// [IgnoreDataMember] - public string Name - { - get - { - string dataProperty = DataProperty.IsEmpty() ? "[NULL]" : DataProperty.Value.SceneObject.GameObject.name; - string newValue = NewValue == null ? "[NULL]" : NewValue.ToString(); - return $"Set {dataProperty} to {newValue}"; - } - } + public string Name => $"Set {DataProperties} to {NewValue}"; } private class ActivatingProcess : StageProcess @@ -56,18 +55,21 @@ public ActivatingProcess(EntityData data) : base(data) /// public override void Start() { + foreach (IDataProperty dataProperty in Data.DataProperties.Values) + { + dataProperty.SetValue(Data.NewValue); + } } /// public override IEnumerator Update() { - yield return null; + yield return null; } /// public override void End() { - Data.DataProperty.Value.SetValue(Data.NewValue); } /// @@ -77,21 +79,17 @@ public override void FastForward() } [JsonConstructor, Preserve] - public SetValueBehavior() : this("", default) - { - } - - public SetValueBehavior(string name) : this ("", default) + public SetValueBehavior() : this(Guid.Empty, default) { } - public SetValueBehavior(string propertyName, T value) + public SetValueBehavior(Guid propertyId, T value) { - Data.DataProperty = new ScenePropertyReference>(propertyName); + Data.DataProperties = new MultipleScenePropertyReference>(propertyId); Data.NewValue = value; } - public SetValueBehavior(IDataProperty property, T value) : this(ProcessReferenceUtils.GetNameFrom(property), value) + public SetValueBehavior(IDataProperty property, T value) : this(ProcessReferenceUtils.GetUniqueIdFrom(property), value) { } diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/UnlockObjectBehavior.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/UnlockObjectBehavior.cs deleted file mode 100644 index db2a06bb1..000000000 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/UnlockObjectBehavior.cs +++ /dev/null @@ -1,113 +0,0 @@ -using Newtonsoft.Json; -using System; -using System.Runtime.Serialization; -using UnityEngine.Scripting; -using VRBuilder.Core.Attributes; -using VRBuilder.Core.SceneObjects; -using VRBuilder.Core.Utils; - -namespace VRBuilder.Core.Behaviors -{ - /// - /// Behavior that unlocks the target SceneObject while active, and locks it again on deactivation (unless it was not locked initially) - /// - [Obsolete("Locking scene objects is obsoleted, consider using the 'Unlocked Objects' list in the Step window.")] - [DataContract(IsReference = true)] - public class UnlockObjectBehavior : Behavior - { - /// - /// The "unlock object" behavior's data. - /// - [DisplayName("Unlock Object")] - [DataContract(IsReference = true)] - public class EntityData : IBehaviorData - { - /// - /// The object to unlock. - /// - [DataMember] - [DisplayName("Object")] - public SceneObjectReference Target { get; set; } - - /// - /// If set to true, it will lock the target at the end of the step. - /// - [DataMember] - [DisplayName("Unlock only during this step")] - public bool IsOnlyUnlockedInStep { get; set; } - - public bool WasLockedOnActivate { get; set; } - - /// - public Metadata Metadata { get; set; } - - /// - public string Name { get; set; } - } - - private class ActivatingProcess : InstantProcess - { - /// - public override void Start() - { - Data.WasLockedOnActivate = Data.Target.Value.IsLocked; - if (Data.WasLockedOnActivate) - { - Data.Target.Value.SetLocked(false); - } - } - - public ActivatingProcess(EntityData data) : base(data) - { - } - } - - private class DeactivatingProcess : InstantProcess - { - /// - public override void Start() - { - if (Data.WasLockedOnActivate && Data.IsOnlyUnlockedInStep) - { - Data.Target.Value.SetLocked(true); - } - } - - public DeactivatingProcess(EntityData data) : base(data) - { - } - } - - [JsonConstructor, Preserve] - public UnlockObjectBehavior() : this("") - { - } - - public UnlockObjectBehavior(ISceneObject target) : this(ProcessReferenceUtils.GetNameFrom(target)) - { - } - - public UnlockObjectBehavior(ISceneObject target, bool isOnlyUnlockedInStep) : this(ProcessReferenceUtils.GetNameFrom(target), isOnlyUnlockedInStep: isOnlyUnlockedInStep) - { - } - - public UnlockObjectBehavior(string targetName, string name = "Unlock Object", bool isOnlyUnlockedInStep = true) - { - Data.Target = new SceneObjectReference(targetName); - Data.Name = name; - Data.IsOnlyUnlockedInStep = isOnlyUnlockedInStep; - } - - /// - public override IStageProcess GetActivatingProcess() - { - return new ActivatingProcess(Data); - } - - /// - public override IStageProcess GetDeactivatingProcess() - { - return new DeactivatingProcess(Data); - } - } -} diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/UnlockObjectBehavior.cs.meta b/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/UnlockObjectBehavior.cs.meta deleted file mode 100644 index 133c7bbd4..000000000 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Behaviors/UnlockObjectBehavior.cs.meta +++ /dev/null @@ -1,13 +0,0 @@ -fileFormatVersion: 2 -guid: e3a9a2417e6d1b44e9b3b26571205ff0 -timeCreated: 1527686363 -licenseType: Pro -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Conditions/CompareValuesCondition.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Conditions/CompareValuesCondition.cs index 87e22cae2..f0363e4c5 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Conditions/CompareValuesCondition.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Conditions/CompareValuesCondition.cs @@ -1,12 +1,12 @@ +using Newtonsoft.Json; +using System; using System.Runtime.Serialization; +using UnityEngine.Scripting; using VRBuilder.Core.Attributes; +using VRBuilder.Core.ProcessUtils; +using VRBuilder.Core.Properties; using VRBuilder.Core.SceneObjects; -using System; using VRBuilder.Core.Utils; -using VRBuilder.Core.Properties; -using VRBuilder.Core.ProcessUtils; -using Newtonsoft.Json; -using UnityEngine.Scripting; namespace VRBuilder.Core.Conditions { @@ -16,7 +16,7 @@ namespace VRBuilder.Core.Conditions [DataContract(IsReference = true)] [HelpLink("https://www.mindport.co/vr-builder-tutorials/states-data-add-on")] public class CompareValuesCondition : Condition.EntityData> where T : IEquatable, IComparable - { + { /// /// The data for a /// @@ -29,6 +29,12 @@ public class EntityData : IConditionData [DataMember] [HideInProcessInspector] + public SingleScenePropertyReference> LeftProperty { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use LeftProperty instead.")] + [LegacyProperty(nameof(LeftProperty))] public ScenePropertyReference> LeftValueProperty { get; set; } [DataMember] @@ -45,6 +51,12 @@ public class EntityData : IConditionData [DataMember] [HideInProcessInspector] + public SingleScenePropertyReference> RightProperty { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use RightProperty instead.")] + [LegacyProperty(nameof(RightProperty))] public ScenePropertyReference> RightValueProperty { get; set; } [DataMember] @@ -61,8 +73,8 @@ public string Name { get { - string leftProperty = IsLeftConst ? LeftValue == null ? "[NULL]" : LeftValue.ToString() : LeftValueProperty.IsEmpty() ? "[NULL]" : LeftValueProperty.Value.SceneObject.GameObject.name; - string rightProperty = IsRightConst ? RightValue == null ? "[NULL]" : RightValue.ToString() : RightValueProperty.IsEmpty() ? "[NULL]" : RightValueProperty.Value.SceneObject.GameObject.name; + string leftProperty = IsLeftConst ? LeftValue == null ? "[NULL]" : LeftValue.ToString() : LeftProperty.HasValue() ? LeftProperty.ToString() : "[NULL]"; + string rightProperty = IsRightConst ? RightValue == null ? "[NULL]" : RightValue.ToString() : RightProperty.HasValue() ? RightProperty.ToString() : "[NULL]"; return $"Compare ({leftProperty} {Operation} {rightProperty})"; } @@ -81,37 +93,33 @@ public ActiveProcess(EntityData data) : base(data) /// protected override bool CheckIfCompleted() { - T left = Data.IsLeftConst ? Data.LeftValue : Data.LeftValueProperty.Value.GetValue(); - T right = Data.IsRightConst ? Data.RightValue : Data.RightValueProperty.Value.GetValue(); + T left = Data.IsLeftConst ? Data.LeftValue : Data.LeftProperty.Value.GetValue(); + T right = Data.IsRightConst ? Data.RightValue : Data.RightProperty.Value.GetValue(); return Data.Operation.Execute(left, right); } } [JsonConstructor, Preserve] - public CompareValuesCondition() : this("", "", default, default, false, false, new EqualToOperation()) + public CompareValuesCondition() : this(Guid.Empty, Guid.Empty, default, default, false, false, new EqualToOperation()) { } - public CompareValuesCondition(string name) : this("", "", default, default, false, false, new EqualToOperation()) + public CompareValuesCondition(IDataProperty leftProperty, IDataProperty rightProperty, T leftValue, T rightValue, bool isLeftConst, bool isRightConst, IOperationCommand operation) : + this(ProcessReferenceUtils.GetUniqueIdFrom(leftProperty), ProcessReferenceUtils.GetUniqueIdFrom(rightProperty), leftValue, rightValue, isLeftConst, isRightConst, operation) { } - public CompareValuesCondition(IDataProperty leftProperty, IDataProperty rightProperty, T leftValue, T rightValue, bool isLeftConst, bool isRightConst, IOperationCommand operation) : - this(ProcessReferenceUtils.GetNameFrom(leftProperty), ProcessReferenceUtils.GetNameFrom(rightProperty), leftValue, rightValue, isLeftConst, isRightConst, operation) - { - } - - public CompareValuesCondition(string leftPropertyName, string rightPropertyName, T leftValue, T rightValue, bool isLeftConst, bool isRightConst, IOperationCommand operation) + public CompareValuesCondition(Guid leftPropertyId, Guid rightPropertyId, T leftValue, T rightValue, bool isLeftConst, bool isRightConst, IOperationCommand operation) { - Data.LeftValueProperty = new ScenePropertyReference>(leftPropertyName); - Data.RightValueProperty = new ScenePropertyReference>(rightPropertyName); + Data.LeftProperty = new SingleScenePropertyReference>(leftPropertyId); + Data.RightProperty = new SingleScenePropertyReference>(rightPropertyId); Data.LeftValue = leftValue; Data.RightValue = rightValue; Data.IsLeftConst = isLeftConst; Data.IsRightConst = isRightConst; - Data.Operation = operation; - } + Data.Operation = operation; + } /// public override IStageProcess GetActiveProcess() diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Conditions/PositionalConditions/ObjectInColliderCondition.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Conditions/PositionalConditions/ObjectInColliderCondition.cs index fda15600a..78415b252 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Conditions/PositionalConditions/ObjectInColliderCondition.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Conditions/PositionalConditions/ObjectInColliderCondition.cs @@ -1,11 +1,12 @@ +using Newtonsoft.Json; +using System; +using System.Linq; using System.Runtime.Serialization; +using UnityEngine.Scripting; using VRBuilder.Core.Attributes; -using VRBuilder.Core.SceneObjects; using VRBuilder.Core.Properties; +using VRBuilder.Core.SceneObjects; using VRBuilder.Core.Utils; -using VRBuilder.Core.Validation; -using Newtonsoft.Json; -using UnityEngine.Scripting; namespace VRBuilder.Core.Conditions { @@ -28,6 +29,12 @@ public class EntityData : IObjectInTargetData /// [DataMember] [DisplayName("Object")] + public MultipleSceneObjectReference TargetObjects { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TargetObjects instead.")] + [LegacyProperty(nameof(TargetObjects))] public SceneObjectReference TargetObject { get; set; } /// @@ -35,10 +42,13 @@ public class EntityData : IObjectInTargetData /// [DataMember] [DisplayName("Collider")] -#if CREATOR_PRO - [CheckForCollider] - [ColliderAreTrigger] -#endif + + public SingleScenePropertyReference TriggerObject { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TriggerObject instead.")] + [LegacyProperty(nameof(TriggerObject))] public ScenePropertyReference TriggerProperty { get; set; } /// @@ -47,21 +57,9 @@ public class EntityData : IObjectInTargetData /// [HideInProcessInspector] [IgnoreDataMember] - public string Name - { - get - { - string targetObject = TargetObject.IsEmpty() ? "[NULL]" : TargetObject.Value.GameObject.name; - string triggerProperty = TriggerProperty.IsEmpty() ? "[NULL]" : TriggerProperty.Value.SceneObject.GameObject.name; - - return $"Move {targetObject} in collider {triggerProperty}"; - } - } + public string Name => $"Move {TargetObjects} in collider {TriggerObject}"; /// -#if CREATOR_PRO - [OptionalValue] -#endif [DataMember] [DisplayName("Required seconds inside")] public float RequiredTimeInside { get; set; } @@ -71,20 +69,32 @@ public string Name } [JsonConstructor, Preserve] - public ObjectInColliderCondition() : this("", "") + public ObjectInColliderCondition() : this(Guid.Empty, Guid.Empty) { } // ReSharper disable once SuggestBaseTypeForParameter public ObjectInColliderCondition(ColliderWithTriggerProperty targetPosition, ISceneObject targetObject, float requiredTimeInTarget = 0) - : this(ProcessReferenceUtils.GetNameFrom(targetPosition), ProcessReferenceUtils.GetNameFrom(targetObject), requiredTimeInTarget) + : this(ProcessReferenceUtils.GetUniqueIdFrom(targetPosition), ProcessReferenceUtils.GetUniqueIdFrom(targetObject), requiredTimeInTarget) { } + [Obsolete("This constructor will be removed in the next major version.")] public ObjectInColliderCondition(string targetPosition, string targetObject, float requiredTimeInTarget = 0) { - Data.TriggerProperty = new ScenePropertyReference(targetPosition); - Data.TargetObject = new SceneObjectReference(targetObject); + Guid triggerGuid = Guid.Empty; + Guid targetGuid = Guid.Empty; + Guid.TryParse(targetPosition, out triggerGuid); + Guid.TryParse(targetObject, out targetGuid); + Data.TriggerObject = new SingleScenePropertyReference(triggerGuid); + Data.TargetObjects = new MultipleSceneObjectReference(targetGuid); + Data.RequiredTimeInside = requiredTimeInTarget; + } + + public ObjectInColliderCondition(Guid targetPosition, Guid targetObject, float requiredTimeInTarget = 0) + { + Data.TriggerObject = new SingleScenePropertyReference(targetPosition); + Data.TargetObjects = new MultipleSceneObjectReference(targetObject); Data.RequiredTimeInside = requiredTimeInTarget; } @@ -97,7 +107,14 @@ public ActiveProcess(EntityData data) : base(data) /// protected override bool IsInside() { - return Data.TriggerProperty.Value.IsTransformInsideTrigger(Data.TargetObject.Value.GameObject.transform); + bool isTransformInsideTrigger = false; + + foreach (ISceneObject sceneObject in Data.TargetObjects.Values) + { + isTransformInsideTrigger |= Data.TriggerObject.Value.IsTransformInsideTrigger(sceneObject.GameObject.transform); + } + + return isTransformInsideTrigger; } } @@ -110,7 +127,12 @@ public EntityAutocompleter(EntityData data) : base(data) /// public override void Complete() { - Data.TriggerProperty.Value.FastForwardEnter(Data.TargetObject.Value); + ISceneObject sceneObject = Data.TargetObjects.Values.FirstOrDefault(); + + if (sceneObject != null) + { + Data.TriggerObject.Value.FastForwardEnter(sceneObject); + } } } diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Conditions/PositionalConditions/ObjectInRangeCondition.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Conditions/PositionalConditions/ObjectInRangeCondition.cs index 14f38ff84..bf4c68a6d 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Conditions/PositionalConditions/ObjectInRangeCondition.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Conditions/PositionalConditions/ObjectInRangeCondition.cs @@ -1,13 +1,11 @@ +using Newtonsoft.Json; using System; using System.Runtime.Serialization; +using UnityEngine.Scripting; using VRBuilder.Core.Attributes; -using VRBuilder.Core.SceneObjects; using VRBuilder.Core.Properties; +using VRBuilder.Core.SceneObjects; using VRBuilder.Core.Utils; -using VRBuilder.Core.Validation; -using VRBuilder.Unity; -using Newtonsoft.Json; -using UnityEngine.Scripting; namespace VRBuilder.Core.Conditions { @@ -25,44 +23,30 @@ public class ObjectInRangeCondition : Condition - /// The tracked object. + /// The tracked objects. /// [DataMember] - [DisplayName("Object")] - public SceneObjectReference Target { get; set; } + [DisplayName("Tracked object")] + public SingleSceneObjectReference TargetObject { get; set; } - private ScenePropertyReference referenceProperty; + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TargetObject instead.")] + [LegacyProperty(nameof(TargetObject))] + public SceneObjectReference Target { get; set; } /// /// The object to measure distance from. /// [DataMember] [DisplayName("Reference object")] - public ScenePropertyReference ReferenceProperty - { - get - { -#pragma warning disable 618 - if ((referenceProperty == null || referenceProperty.IsEmpty()) && DistanceDetector != null && DistanceDetector.IsEmpty() == false) - { - DistanceDetector.Value.GameObject.GetOrAddComponent(); - referenceProperty = new ScenePropertyReference(DistanceDetector.UniqueName); - DistanceDetector = null; - } -#pragma warning restore 618 - - return referenceProperty; - } - - set => referenceProperty = value; - } + public SingleScenePropertyReference ReferenceObject { get; set; } - /// - /// The object to measure distance from. - /// + [DataMember] [HideInProcessInspector] - [Obsolete("Use 'ReferenceProperty' instead.")] - public SceneObjectReference DistanceDetector; + [Obsolete("Use ReferenceObject instead.")] + [LegacyProperty(nameof(ReferenceObject))] + public ScenePropertyReference ReferenceProperty { get; set; } /// /// The required distance between two objects to trigger the condition. @@ -73,21 +57,9 @@ public ScenePropertyReference ReferencePropert /// [IgnoreDataMember] [HideInProcessInspector] - public string Name - { - get - { - string target = Target.IsEmpty() ? "[NULL]" : Target.Value.GameObject.name; - string referenceProperty = ReferenceProperty.IsEmpty() ? "[NULL]" : ReferenceProperty.Value.SceneObject.GameObject.name; - - return $"Move {target} within {Range.ToString()} units of {referenceProperty}"; - } - } + public string Name => $"Move {TargetObject} within {Range} units of {ReferenceObject}"; /// -#if CREATOR_PRO - [OptionalValue] -#endif [DataMember] [DisplayName("Required seconds inside")] public float RequiredTimeInside { get; set; } @@ -100,19 +72,19 @@ public string Name } [JsonConstructor, Preserve] - public ObjectInRangeCondition() : this("", "", 0f) + public ObjectInRangeCondition() : this(Guid.Empty, Guid.Empty, 0f) { } public ObjectInRangeCondition(ISceneObject target, TransformInRangeDetectorProperty detector, float range, float requiredTimeInTarget = 0) - : this(ProcessReferenceUtils.GetNameFrom(target), ProcessReferenceUtils.GetNameFrom(detector), range, requiredTimeInTarget) + : this(ProcessReferenceUtils.GetUniqueIdFrom(target), ProcessReferenceUtils.GetUniqueIdFrom(detector), range, requiredTimeInTarget) { } - public ObjectInRangeCondition(string target, string detector, float range, float requiredTimeInTarget = 0) + public ObjectInRangeCondition(Guid targetId, Guid detector, float range, float requiredTimeInTarget = 0) { - Data.Target = new SceneObjectReference(target); - Data.ReferenceProperty = new ScenePropertyReference(detector); + Data.TargetObject = new SingleSceneObjectReference(targetId); + Data.ReferenceObject = new SingleScenePropertyReference(detector); Data.Range = range; Data.RequiredTimeInside = requiredTimeInTarget; } @@ -125,16 +97,16 @@ public ActiveProcess(EntityData data) : base(data) public override void Start() { - Data.ReferenceProperty.Value.SetTrackedTransform(Data.Target.Value.GameObject.transform); - Data.ReferenceProperty.Value.DetectionRange = Data.Range; - + Data.ReferenceObject.Value.SetTrackedTransform(Data.TargetObject.Value.GameObject.transform); + Data.ReferenceObject.Value.DetectionRange = Data.Range; + base.Start(); } /// protected override bool IsInside() { - return Data.ReferenceProperty.Value.IsTargetInsideRange(); + return Data.ReferenceObject.Value.IsTargetInsideRange(); } } @@ -147,7 +119,7 @@ public EntityAutocompleter(EntityData data) : base(data) /// public override void Complete() { - Data.Target.Value.GameObject.transform.position = Data.ReferenceProperty.Value.gameObject.transform.position; + Data.TargetObject.Value.GameObject.transform.position = Data.ReferenceObject.Value.gameObject.transform.position; } } diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/DataProperties/ProcessVariable.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/DataProperties/ProcessVariable.cs index f4d7d69f2..5429e5a87 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/DataProperties/ProcessVariable.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/DataProperties/ProcessVariable.cs @@ -1,4 +1,7 @@ +using System; +using System.Collections.Generic; using System.Runtime.Serialization; +using VRBuilder.Core.Attributes; using VRBuilder.Core.Properties; using VRBuilder.Core.SceneObjects; @@ -7,7 +10,7 @@ namespace VRBuilder.Core.ProcessUtils /// /// Struct for a process variable. Accommodates the value coming from a , or being a constant value set e.g. in the Step Inspector. /// - [DataContract] + [DataContract(IsReference = true)] public struct ProcessVariable { /// @@ -20,6 +23,11 @@ public struct ProcessVariable /// Property reference for the variable. /// [DataMember] + public SingleScenePropertyReference> Property { get; set; } + + [DataMember] + [Obsolete("Use Property instead.")] + [LegacyProperty(nameof(Property))] public ScenePropertyReference> PropertyReference { get; set; } /// @@ -28,16 +36,45 @@ public struct ProcessVariable [DataMember] public bool IsConst { get; set; } - public ProcessVariable(T constValue, string propertyReferenceName, bool isConst) + public ProcessVariable(T constValue, Guid referenceId, bool isConst) { ConstValue = constValue; - PropertyReference = new ScenePropertyReference>(propertyReferenceName); + Property = new SingleScenePropertyReference>(referenceId); IsConst = isConst; + +#pragma warning disable CS0618 // Type or member is obsolete - We want remove all calls to deprecated code but this needs to stay for compatibility reasons + PropertyReference = new ScenePropertyReference>(referenceId.ToString()); +#pragma warning restore CS0618 // Type or member is obsolete + } + + public ProcessVariable(T constValue, IEnumerable referenceIds, bool isConst) + { + ConstValue = constValue; + Property = new SingleScenePropertyReference>(referenceIds); + IsConst = isConst; + +#pragma warning disable CS0618 // Type or member is obsolete - We want remove all calls to deprecated code but this needs to stay for compatibility reasons + PropertyReference = new ScenePropertyReference>(); +#pragma warning restore CS0618 // Type or member is obsolete } /// /// Returns the current value of this variable. /// - public T Value => IsConst ? ConstValue : PropertyReference.Value.GetValue(); + public T Value => IsConst ? ConstValue : Property.Value.GetValue(); + + public override string ToString() + { + if (IsConst && ConstValue != null) + { + return ConstValue.ToString(); + } + else if (IsConst == false && Property.HasValue()) + { + return Property.Value.ToString(); + } + + return "[NULL]"; + } } } \ No newline at end of file diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/ColliderWithTriggerProperty.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/ColliderWithTriggerProperty.cs index bcf3ec985..56eac5242 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/ColliderWithTriggerProperty.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/ColliderWithTriggerProperty.cs @@ -1,6 +1,6 @@ using System; -using VRBuilder.Core.SceneObjects; using UnityEngine; +using VRBuilder.Core.SceneObjects; namespace VRBuilder.Core.Properties { @@ -25,13 +25,13 @@ protected override void OnEnable() Collider[] colliders = GetComponents(); if (colliders.Length == 0) { - Debug.LogErrorFormat("Object '{0}' with ColliderProperty must have at least one Collider attached.", SceneObject.UniqueName); + Debug.LogErrorFormat("Object '{0}' with ColliderProperty must have at least one Collider attached.", SceneObject.GameObject.name); } else { if (CheckIfObjectHasTriggerCollider() == false) { - Debug.LogErrorFormat("Object '{0}' with ColliderProperty must have at least one Collider with isTrigger set to true.", SceneObject.UniqueName); + Debug.LogErrorFormat("Object '{0}' with ColliderProperty must have at least one Collider with isTrigger set to true.", SceneObject.GameObject.name); } } } @@ -59,7 +59,7 @@ public bool IsTransformInsideTrigger(Transform targetTransform) foreach (Collider collider in colliders) { if (collider.enabled && collider.isTrigger) - { + { // If object and collider is in same position return true as it's not possible to raycast if (collider.bounds.center == targetTransform.position) { diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/Data/DataProperty.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/Data/DataProperty.cs index d33da4c55..4c02ab17b 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/Data/DataProperty.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/Data/DataProperty.cs @@ -1,4 +1,3 @@ -using System; using UnityEngine; using UnityEngine.Events; using VRBuilder.Core.Utils.Logging; @@ -20,12 +19,6 @@ public abstract class DataProperty : ProcessSceneObjectProperty, IDataPropert /// protected T storedValue; - /// - public event EventHandler ValueChanged; - - /// - public event EventHandler ValueReset; - /// public abstract UnityEvent OnValueChanged { get; } @@ -47,25 +40,23 @@ public T GetValue() public void ResetValue() { SetValue(DefaultValue); - ValueReset?.Invoke(this, EventArgs.Empty); OnValueReset?.Invoke(); } /// public void SetValue(T value) { - if((storedValue == null && value == null) || value.Equals(storedValue)) + if ((storedValue == null && value == null) || value.Equals(storedValue)) { return; } - if(LifeCycleLoggingConfig.Instance.LogDataPropertyChanges) + if (LifeCycleLoggingConfig.Instance.LogDataPropertyChanges) { - Debug.Log($"{ConsoleUtils.GetTabs()}{GetType().Name} on '{SceneObject.UniqueName}' changed from {ValueToString(storedValue)} to {ValueToString(value)}.\n"); + Debug.Log($"{ConsoleUtils.GetTabs()}{GetType().Name} on '{SceneObject.GameObject.name}' changed from {ValueToString(storedValue)} to {ValueToString(value)}.\n"); } storedValue = value; - ValueChanged?.Invoke(this, EventArgs.Empty); OnValueChanged?.Invoke(storedValue); } diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/Data/IDataPropertyBase.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/Data/IDataPropertyBase.cs index 72ff8051f..0fd284a28 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/Data/IDataPropertyBase.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/Data/IDataPropertyBase.cs @@ -1,4 +1,3 @@ -using System; using UnityEngine.Events; namespace VRBuilder.Core.Properties @@ -8,18 +7,6 @@ namespace VRBuilder.Core.Properties /// public interface IDataPropertyBase : ISceneObjectProperty { - /// - /// Raised when the stored value changes. - /// - [Obsolete("This event is deprecated. Use OnValueChanged instead.")] - event EventHandler ValueChanged; - - /// - /// Raised when the stored value is reset to the default. - /// - [Obsolete("This event is deprecated. Use OnValueReset instead.")] - event EventHandler ValueReset; - /// /// Raised when the stored value is reset to the default. /// diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/Highlighting/BaseHighlightProperty.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/Highlighting/BaseHighlightProperty.cs index e88d9460b..bc2fa6906 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/Highlighting/BaseHighlightProperty.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/Highlighting/BaseHighlightProperty.cs @@ -21,12 +21,6 @@ public abstract class BaseHighlightProperty : ProcessSceneObjectProperty, IHighl /// public class HighlightEventArgs : EventArgs { } - /// - public event EventHandler Highlighted; - - /// - public event EventHandler Unhighlighted; - /// /// Is currently highlighted. /// @@ -49,11 +43,6 @@ public class HighlightEventArgs : EventArgs { } /// public void EmitHighlightEvent(HighlightPropertyEventArgs args) { - if (Highlighted != null) - { - Highlighted.Invoke(this, new HighlightEventArgs()); - } - HighlightStarted?.Invoke(args); } @@ -62,11 +51,6 @@ public void EmitHighlightEvent(HighlightPropertyEventArgs args) /// public void EmitUnhighlightEvent(HighlightPropertyEventArgs args) { - if (Unhighlighted != null) - { - Unhighlighted.Invoke(this, new HighlightEventArgs()); - } - HighlightEnded?.Invoke(args); } } diff --git a/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/Highlighting/IHighlightProperty.cs b/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/Highlighting/IHighlightProperty.cs index 4d0c7c5b0..3e0c80ef2 100644 --- a/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/Highlighting/IHighlightProperty.cs +++ b/Source/Basic-Conditions-And-Behaviors/Runtime/Properties/Highlighting/IHighlightProperty.cs @@ -9,18 +9,6 @@ namespace VRBuilder.Core.Properties /// public interface IHighlightProperty : ISceneObjectProperty { - /// - /// Emitted when the object gets highlighted. - /// - [Obsolete("Use HighlightStarted instead.")] - event EventHandler Highlighted; - - /// - /// Emitted when the object gets unhighlighted. - /// - [Obsolete("Use HighlightEnded instead.")] - event EventHandler Unhighlighted; - /// /// Emitted when the object gets highlighted. /// diff --git a/Source/Core/Editor/TestTools.meta b/Source/Basic-Interaction-Component/Editor/Converters.meta similarity index 77% rename from Source/Core/Editor/TestTools.meta rename to Source/Basic-Interaction-Component/Editor/Converters.meta index 487272521..014939e0c 100644 --- a/Source/Core/Editor/TestTools.meta +++ b/Source/Basic-Interaction-Component/Editor/Converters.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4b10f45d0ab73bd4cbd63a3d9ecce40f +guid: bc47edcf1688ebe4fa092ff68191c374 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Source/Basic-Interaction-Component/Editor/Converters/GrabbedObjectWithTagConditionConverter.cs b/Source/Basic-Interaction-Component/Editor/Converters/GrabbedObjectWithTagConditionConverter.cs new file mode 100644 index 000000000..5868b9854 --- /dev/null +++ b/Source/Basic-Interaction-Component/Editor/Converters/GrabbedObjectWithTagConditionConverter.cs @@ -0,0 +1,34 @@ +using VRBuilder.BasicInteraction.Conditions; +using VRBuilder.BasicInteraction.Properties; +using VRBuilder.Core.SceneObjects; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Replaces an obsolete with a + /// with the same configuration. + /// +#pragma warning disable CS0618 // Type or member is obsolete + public class GrabbedObjectWithTagConditionConverter : Converter + { + /// + protected override GrabbedCondition PerformConversion(GrabbedObjectWithTagCondition oldCondition) +#pragma warning restore CS0618 // Type or member is obsolete + { + GrabbedCondition newCondition = new GrabbedCondition(); + + if (oldCondition.Data.Targets.HasValue()) + { + newCondition.Data.Targets = oldCondition.Data.Targets; + } + else + { +#pragma warning disable CS0618 // Type or member is obsolete + newCondition.Data.Targets = new MultipleScenePropertyReference(oldCondition.Data.Tag.Guid); +#pragma warning restore CS0618 // Type or member is obsolete + } + + return newCondition; + } + } +} diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableComponentByTagMenuItem.cs.meta b/Source/Basic-Interaction-Component/Editor/Converters/GrabbedObjectWithTagConditionConverter.cs.meta similarity index 83% rename from Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableComponentByTagMenuItem.cs.meta rename to Source/Basic-Interaction-Component/Editor/Converters/GrabbedObjectWithTagConditionConverter.cs.meta index 8334b2f58..25571f4c3 100644 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableComponentByTagMenuItem.cs.meta +++ b/Source/Basic-Interaction-Component/Editor/Converters/GrabbedObjectWithTagConditionConverter.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 9d569552f365ec745a4827f7c983e2f5 +guid: 0f3eda11b70eec941955afeab89f22f0 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Source/Basic-Interaction-Component/Editor/Converters/SnappedObjectWithTagConditionConverter.cs b/Source/Basic-Interaction-Component/Editor/Converters/SnappedObjectWithTagConditionConverter.cs new file mode 100644 index 000000000..09ba83a74 --- /dev/null +++ b/Source/Basic-Interaction-Component/Editor/Converters/SnappedObjectWithTagConditionConverter.cs @@ -0,0 +1,54 @@ +using System.Linq; +using VRBuilder.BasicInteraction.Conditions; +using VRBuilder.BasicInteraction.Properties; +using VRBuilder.Core.SceneObjects; +using VRBuilder.Unity; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Replaces an obsolete with a + /// with the same configuration. + /// +#pragma warning disable CS0618 // Type or member is obsolete + public class SnappedObjectWithTagConditionConverter : Converter + { + /// + protected override SnappedCondition PerformConversion(SnappedObjectWithTagCondition oldCondition) +#pragma warning restore CS0618 // Type or member is obsolete + { + SnappedCondition newCondition = new SnappedCondition(); + + if (oldCondition.Data.TargetObjects.HasValue()) + { + newCondition.Data.TargetObjects = oldCondition.Data.TargetObjects; + } + else + { +#pragma warning disable CS0618 // Type or member is obsolete + newCondition.Data.TargetObjects = new MultipleScenePropertyReference(oldCondition.Data.Tag.Guid); +#pragma warning restore CS0618 // Type or member is obsolete + } + + if (oldCondition.Data.TargetSnapZone.HasValue()) + { + newCondition.Data.TargetSnapZone = oldCondition.Data.TargetSnapZone; + } +#pragma warning disable CS0618 // Type or member is obsolete + else if (string.IsNullOrEmpty(oldCondition.Data.ZoneToSnapInto.UniqueName) == false) + { + { + ProcessSceneObject referencedObject = SceneUtils.GetActiveAndInactiveComponents().FirstOrDefault(sceneObject => sceneObject.UniqueName == oldCondition.Data.ZoneToSnapInto.UniqueName); +#pragma warning restore CS0618 // Type or member is obsolete + + if (referencedObject != null) + { + newCondition.Data.TargetSnapZone = new SingleScenePropertyReference(referencedObject.Guid); + } + } + } + + return newCondition; + } + } +} \ No newline at end of file diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableGameObjectMenuItem.cs.meta b/Source/Basic-Interaction-Component/Editor/Converters/SnappedObjectWithTagConditionConverter.cs.meta similarity index 83% rename from Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableGameObjectMenuItem.cs.meta rename to Source/Basic-Interaction-Component/Editor/Converters/SnappedObjectWithTagConditionConverter.cs.meta index 098cd418c..8be3e591c 100644 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/EnableGameObjectMenuItem.cs.meta +++ b/Source/Basic-Interaction-Component/Editor/Converters/SnappedObjectWithTagConditionConverter.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7b388839dcb36574f9b41c5ecda2b7f5 +guid: 2660e6263dd31df47b02734fb1db6948 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Source/Basic-Interaction-Component/Editor/Inspector/HasGuidValidationEditor.cs b/Source/Basic-Interaction-Component/Editor/Inspector/HasGuidValidationEditor.cs new file mode 100644 index 000000000..080419b66 --- /dev/null +++ b/Source/Basic-Interaction-Component/Editor/Inspector/HasGuidValidationEditor.cs @@ -0,0 +1,299 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; +using UnityEngine.UIElements; +using VRBuilder.BasicInteraction.Validation; +using VRBuilder.Core.Configuration; +using VRBuilder.Core.SceneObjects; +using VRBuilder.Core.Settings; +using VRBuilder.Editor.UI; +using VRBuilder.Editor.UI.Windows; + +namespace VRBuilder.Editor.BasicInteraction.Inspector +{ + [CustomEditor(typeof(HasGuidValidation))] + [CanEditMultipleObjects] + public class HasGuidValidationEditor : UnityEditor.Editor + { + [SerializeField] + private VisualTreeAsset searchableList; + + [SerializeField] + private VisualTreeAsset groupListItem; + protected GUIStyle richTextLabelStyle; + + private Rect lastButtonRect; + + public override void OnInspectorGUI() + { + InitializeRichTextLabelStyle(); + List guidContainers = targets.Where(t => t is IGuidContainer).Cast().ToList(); + List availableGroups = SceneObjectGroups.Instance.Groups.Where(guid => !guidContainers.All(c => c.HasGuid(guid.Guid))).ToList(); + Action onItemSelected = (SceneObjectGroups.SceneObjectGroup group) => AddGroup(group); + + EditorGUILayout.LabelField("Allowed objects", richTextLabelStyle); + DrawDragAndDropArea(onItemSelected); + DrawModifyGroupSelectionButton(onItemSelected, availableGroups); + DrawSelectedGroupsAndGameObjects(guidContainers); + + EditorGUILayout.Space(EditorDrawingHelper.VerticalSpacing); + } + + private void AddGroup(SceneObjectGroups.SceneObjectGroup group) + { + Guid guid = group.Guid; + foreach (UnityEngine.Object target in targets) + { + IGuidContainer guidContainer = target as IGuidContainer; + bool setDirty = false; + + if (guidContainer.Guids.Contains(guid) == false) + { + guidContainer.AddGuid(guid); + setDirty = true; + } + + if (setDirty) + { + EditorUtility.SetDirty(target); + } + } + } + + private void DrawDragAndDropArea(Action selectedItemCallback) + { + Action droppedGameObject = (GameObject selectedSceneObject) => HandleDroopedGameObject(selectedItemCallback, selectedSceneObject); + DropAreaGUI(droppedGameObject); + } + + private void HandleDroopedGameObject(Action selectedItemCallback, GameObject selectedSceneObject) + { + if (selectedSceneObject != null) + { + ProcessSceneObject processSceneObject = selectedSceneObject.GetComponent(); + + if (processSceneObject == null) + { + Guid newGuid = OpenMissingProcessSceneObjectDialog(selectedSceneObject); + + if (newGuid != Guid.Empty) + { + selectedItemCallback?.Invoke(GetGroup(newGuid)); + } + } + else + { + var guids = GetAllGuids(processSceneObject); + if (guids.Count() == 1) + { + selectedItemCallback?.Invoke(GetGroup(guids.First())); + } + else + { + // If the PSO is in multiple groups we let the user decide which one he wants to take + OpenSearchableGroupListDropdown(selectedItemCallback, GetGroups(GetAllGuids(processSceneObject))); + } + } + } + } + + private void DrawModifyGroupSelectionButton(Action onItemSelected, List availableGroups) + { + if (GUILayout.Button("Select groups")) + { + OpenSearchableGroupListDropdown(onItemSelected, availableGroups); + } + + /// Unity's GUILayout system doesn't allow for direct querying of element dimensions or positions before they are rendered. + /// This is a workaround to get the position until we convert this component fully to UI Toolkit. + if (Event.current.type == EventType.Repaint) + { + lastButtonRect = GUILayoutUtility.GetLastRect(); + } + } + + private void OpenSearchableGroupListDropdown(Action selectedItemCallback, List availableGroups = null) + { + SearchableGroupListPopup content = new SearchableGroupListPopup(selectedItemCallback, searchableList, groupListItem); + content.SetAvailableGroups(availableGroups); + content.SetWindowSize(windowWith: lastButtonRect.width); + UnityEditor.PopupWindow.Show(lastButtonRect, content); + } + + protected Guid OpenMissingProcessSceneObjectDialog(GameObject selectedSceneObject) + { + Guid guid = Guid.Empty; + + if (selectedSceneObject != null) + { + if (EditorUtility.DisplayDialog("No Process Scene Object component", "This object does not have a Process Scene Object component.\n" + + "A Process Scene Object component is required for the object to work with the VR Builder process.\n" + + "Do you want to add one now?", "Yes", "No")) + { + guid = selectedSceneObject.AddComponent().Guid; + EditorUtility.SetDirty(selectedSceneObject); + } + } + return guid; + } + + private List GetGroups(IEnumerable groupsOnObject) + { + List groups = new List(); + foreach (Guid guid in groupsOnObject) + { + groups.Add(GetGroup(guid)); + } + return groups; + } + + private SceneObjectGroups.SceneObjectGroup GetGroup(Guid guid) + { + SceneObjectGroups.SceneObjectGroup group; + + if (!SceneObjectGroups.Instance.TryGetGroup(guid, out group)) + { + group = new SceneObjectGroups.SceneObjectGroup($"{SceneObjectGroups.UniqueGuidNameItalic}", guid); + } + + return group; + } + + private IEnumerable GetAllGuids(ISceneObject obj) + { + return new List() { obj.Guid }.Concat(obj.Guids); + } + + protected void DropAreaGUI(Action dropAction) + { + Event evt = Event.current; + + GUILayout.BeginHorizontal(); + GUILayout.Box($"Drop a game object on this component to assign it or any groups it belongs to.", GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true)); + GUILayout.EndHorizontal(); + + switch (evt.type) + { + case EventType.DragUpdated: + case EventType.DragPerform: + + DragAndDrop.visualMode = DragAndDropVisualMode.Link; + + if (evt.type == EventType.DragPerform) + { + DragAndDrop.AcceptDrag(); + + foreach (GameObject dragged_object in DragAndDrop.objectReferences) + { + dropAction(dragged_object); + } + } + break; + } + } + + private void DrawSelectedGroupsAndGameObjects(IEnumerable guidContainers) + { + if (RuntimeConfigurator.Exists == false) + { + return; + } + + if (guidContainers.Any(container => container.Guids.Count() > 0)) + { + GUILayout.Label("Registered objects in scene:"); + } + + List displayedGuids = new List(); + + foreach (IGuidContainer container in guidContainers) + { + foreach (Guid guidToDisplay in container.Guids) + { + if (displayedGuids.Contains(guidToDisplay)) + { + continue; + } + + displayedGuids.Add(guidToDisplay); + + IEnumerable processSceneObjectInGroup = RuntimeConfigurator.Configuration.SceneObjectRegistry.GetObjects(guidToDisplay); + + GUILayout.BeginHorizontal(); + GUILayout.Space(EditorDrawingHelper.IndentationWidth); + DrawLabel(guidToDisplay, guidContainers.All(container => container.HasGuid(guidToDisplay)) == false); + + EditorGUI.BeginDisabledGroup(processSceneObjectInGroup.Count() == 0); + if (GUILayout.Button("Select")) + { + // Select all game objects in the group in the Hierarchy + Selection.objects = processSceneObjectInGroup.Select(processSceneObject => processSceneObject.GameObject).ToArray(); + } + EditorGUI.EndDisabledGroup(); + + if (GUILayout.Button("Remove")) + { + container.RemoveGuid(guidToDisplay); + GUILayout.EndHorizontal(); + return; + } + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + + foreach (ISceneObject sceneObject in processSceneObjectInGroup) + { + GUILayout.BeginHorizontal(); + GUILayout.Space(EditorDrawingHelper.IndentationWidth); + GUILayout.Space(EditorDrawingHelper.IndentationWidth); + GUILayout.Label($"{sceneObject.GameObject.name}"); + if (GUILayout.Button("Show")) + { + EditorGUIUtility.PingObject(sceneObject.GameObject); + } + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + } + } + } + } + + private void DrawLabel(Guid guidToDisplay, bool italicize) + { + string label; + + SceneObjectGroups.SceneObjectGroup group; + if (SceneObjectGroups.Instance.TryGetGroup(guidToDisplay, out group)) + { + label = group.Label; + } + else if (RuntimeConfigurator.Configuration.SceneObjectRegistry.ContainsGuid(guidToDisplay)) + { + label = SceneObjectGroups.UniqueGuidNameItalic; + } + else + { + label = $"{SceneObjectGroups.GuidNotRegisteredText} - {guidToDisplay}."; + } + + if (italicize) + { + label = $"{label}"; + } + + GUILayout.Label($"Group: {label}", richTextLabelStyle); + } + + private void InitializeRichTextLabelStyle() + { + if (richTextLabelStyle == null) + { + richTextLabelStyle = new GUIStyle(GUI.skin.label) + { + richText = true + }; + } + } + } +} \ No newline at end of file diff --git a/Source/Basic-Interaction-Component/Editor/Inspector/HasGuidValidationEditor.cs.meta b/Source/Basic-Interaction-Component/Editor/Inspector/HasGuidValidationEditor.cs.meta new file mode 100644 index 000000000..0fbf528e6 --- /dev/null +++ b/Source/Basic-Interaction-Component/Editor/Inspector/HasGuidValidationEditor.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: a6d91176114ff5e44b77b52411183062 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: + - searchableList: {fileID: 9197481963319205126, guid: 6066e727974f85c42b1e6ece72685dad, type: 3} + - groupListItem: {fileID: 9197481963319205126, guid: 63080784df6e7894eba69858fc7ae560, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Basic-Interaction-Component/Editor/Inspector/IsObjectWithTagValidationEditor.cs b/Source/Basic-Interaction-Component/Editor/Inspector/IsObjectWithTagValidationEditor.cs index 05564676d..6ef17c2b5 100644 --- a/Source/Basic-Interaction-Component/Editor/Inspector/IsObjectWithTagValidationEditor.cs +++ b/Source/Basic-Interaction-Component/Editor/Inspector/IsObjectWithTagValidationEditor.cs @@ -28,17 +28,17 @@ private void OnEnable() public override void OnInspectorGUI() { - List tagContainers = targets.Where(t => t is ITagContainer).Cast().ToList(); + List tagContainers = targets.Where(t => t is IGuidContainer).Cast().ToList(); - List availableTags = new List(SceneObjectTags.Instance.Tags); + List availableTags = new List(SceneObjectGroups.Instance.Groups); EditorGUILayout.Space(EditorDrawingHelper.VerticalSpacing); EditorGUILayout.LabelField("Scene object tags:"); - foreach (SceneObjectTags.Tag tag in SceneObjectTags.Instance.Tags) + foreach (SceneObjectGroups.SceneObjectGroup tag in SceneObjectGroups.Instance.Groups) { - if (tagContainers.All(c => c.HasTag(tag.Guid))) + if (tagContainers.All(c => c.HasGuid(tag.Guid))) { availableTags.RemoveAll(t => t.Guid == tag.Guid); } @@ -55,21 +55,21 @@ public override void OnInspectorGUI() if (GUILayout.Button("Add Tag", GUILayout.Width(128))) { - List processedContainers = tagContainers.Where(container => container.HasTag(availableTags[selectedTagIndex].Guid) == false).ToList(); + List processedContainers = tagContainers.Where(container => container.HasGuid(availableTags[selectedTagIndex].Guid) == false).ToList(); RevertableChangesHandler.Do(new ProcessCommand( - () => processedContainers.ForEach(container => container.AddTag(availableTags[selectedTagIndex].Guid)), - () => processedContainers.ForEach(container => container.RemoveTag(availableTags[selectedTagIndex].Guid)) + () => processedContainers.ForEach(container => container.AddGuid(availableTags[selectedTagIndex].Guid)), + () => processedContainers.ForEach(container => container.RemoveGuid(availableTags[selectedTagIndex].Guid)) )); } EditorGUI.EndDisabledGroup(); EditorGUILayout.EndHorizontal(); - List usedTags = new List(SceneObjectTags.Instance.Tags); + List usedTags = new List(SceneObjectGroups.Instance.Groups); - foreach (SceneObjectTags.Tag tag in SceneObjectTags.Instance.Tags) + foreach (SceneObjectGroups.SceneObjectGroup tag in SceneObjectGroups.Instance.Groups) { - if (tagContainers.All(c => c.HasTag(tag.Guid) == false)) + if (tagContainers.All(c => c.HasGuid(tag.Guid) == false)) { usedTags.RemoveAll(t => t.Guid == tag.Guid); } @@ -77,9 +77,9 @@ public override void OnInspectorGUI() foreach (Guid guid in usedTags.Select(t => t.Guid)) { - if (SceneObjectTags.Instance.TagExists(guid) == false) + if (SceneObjectGroups.Instance.GroupExists(guid) == false) { - tagContainers.ForEach(c => c.RemoveTag(guid)); + tagContainers.ForEach(c => c.RemoveGuid(guid)); break; } @@ -87,17 +87,17 @@ public override void OnInspectorGUI() if (GUILayout.Button(deleteIcon.Texture, GUILayout.Height(EditorDrawingHelper.SingleLineHeight))) { - List processedContainers = tagContainers.Where(container => container.HasTag(guid)).ToList(); + List processedContainers = tagContainers.Where(container => container.HasGuid(guid)).ToList(); RevertableChangesHandler.Do(new ProcessCommand( - () => processedContainers.ForEach(container => container.RemoveTag(guid)), - () => processedContainers.ForEach(container => container.AddTag(guid)) + () => processedContainers.ForEach(container => container.RemoveGuid(guid)), + () => processedContainers.ForEach(container => container.AddGuid(guid)) )); break; } - string label = SceneObjectTags.Instance.GetLabel(guid); - if (tagContainers.Any(container => container.HasTag(guid) == false)) + string label = SceneObjectGroups.Instance.GetLabel(guid); + if (tagContainers.Any(container => container.HasGuid(guid) == false)) { label = $"{label}"; } diff --git a/Source/Basic-Interaction-Component/Editor/MenuItems/GrabbedByTagMenuItem.cs b/Source/Basic-Interaction-Component/Editor/MenuItems/GrabbedByTagMenuItem.cs deleted file mode 100644 index eb0c8416a..000000000 --- a/Source/Basic-Interaction-Component/Editor/MenuItems/GrabbedByTagMenuItem.cs +++ /dev/null @@ -1,19 +0,0 @@ -using VRBuilder.BasicInteraction.Conditions; -using VRBuilder.Core.Conditions; -using VRBuilder.Editor.UI.StepInspector.Menu; - -namespace VRBuilder.Editor.BasicInteraction.UI.Conditions -{ - /// - public class GrabbedByTagMenuItem : MenuItem - { - /// - public override string DisplayedName { get; } = "Interaction/Grab Object/By Tag"; - - /// - public override ICondition GetNewItem() - { - return new GrabbedObjectWithTagCondition(); - } - } -} \ No newline at end of file diff --git a/Source/Basic-Interaction-Component/Editor/MenuItems/GrabbedByTagMenuItem.cs.meta b/Source/Basic-Interaction-Component/Editor/MenuItems/GrabbedByTagMenuItem.cs.meta deleted file mode 100644 index 09fd023d3..000000000 --- a/Source/Basic-Interaction-Component/Editor/MenuItems/GrabbedByTagMenuItem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8f82db0fb5f2ca545aee5424c5ad72bc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Source/Basic-Interaction-Component/Editor/MenuItems/GrabbedMenuItem.cs b/Source/Basic-Interaction-Component/Editor/MenuItems/GrabbedMenuItem.cs index 371fcdcec..48d4ffa51 100644 --- a/Source/Basic-Interaction-Component/Editor/MenuItems/GrabbedMenuItem.cs +++ b/Source/Basic-Interaction-Component/Editor/MenuItems/GrabbedMenuItem.cs @@ -6,7 +6,7 @@ namespace VRBuilder.Editor.BasicInteraction.UI.Conditions { public class GrabbedMenuItem : MenuItem { - public override string DisplayedName { get; } = "Interaction/Grab Object/By Reference"; + public override string DisplayedName { get; } = "Interaction/Grab Object"; public override ICondition GetNewItem() { diff --git a/Source/Basic-Interaction-Component/Editor/MenuItems/SnappedByTagMenuItem.cs b/Source/Basic-Interaction-Component/Editor/MenuItems/SnappedByTagMenuItem.cs deleted file mode 100644 index 58191c236..000000000 --- a/Source/Basic-Interaction-Component/Editor/MenuItems/SnappedByTagMenuItem.cs +++ /dev/null @@ -1,16 +0,0 @@ -using VRBuilder.BasicInteraction.Conditions; -using VRBuilder.Core.Conditions; -using VRBuilder.Editor.UI.StepInspector.Menu; - -namespace VRBuilder.Editor.BasicInteraction.UI.Conditions -{ - public class SnappedByTagMenuItem : MenuItem - { - public override string DisplayedName { get; } = "Interaction/Snap Object/By Tag"; - - public override ICondition GetNewItem() - { - return new SnappedObjectWithTagCondition(); - } - } -} \ No newline at end of file diff --git a/Source/Basic-Interaction-Component/Editor/MenuItems/SnappedByTagMenuItem.cs.meta b/Source/Basic-Interaction-Component/Editor/MenuItems/SnappedByTagMenuItem.cs.meta deleted file mode 100644 index 83aceb7ab..000000000 --- a/Source/Basic-Interaction-Component/Editor/MenuItems/SnappedByTagMenuItem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2b3d38b0e6e503c4e94a916e45ded968 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Source/Basic-Interaction-Component/Editor/MenuItems/SnappedMenuItem.cs b/Source/Basic-Interaction-Component/Editor/MenuItems/SnappedMenuItem.cs index d99c8d6e9..81279772e 100644 --- a/Source/Basic-Interaction-Component/Editor/MenuItems/SnappedMenuItem.cs +++ b/Source/Basic-Interaction-Component/Editor/MenuItems/SnappedMenuItem.cs @@ -6,7 +6,7 @@ namespace VRBuilder.Editor.BasicInteraction.UI.Conditions { public class SnappedMenuItem : MenuItem { - public override string DisplayedName { get; } = "Interaction/Snap Object/By Reference"; + public override string DisplayedName { get; } = "Interaction/Snap Object"; public override ICondition GetNewItem() { diff --git a/Source/Basic-Interaction-Component/Editor/MenuItems/TeleportMenuItem.cs b/Source/Basic-Interaction-Component/Editor/MenuItems/TeleportMenuItem.cs index 8f6aba2da..2e6412468 100644 --- a/Source/Basic-Interaction-Component/Editor/MenuItems/TeleportMenuItem.cs +++ b/Source/Basic-Interaction-Component/Editor/MenuItems/TeleportMenuItem.cs @@ -1,5 +1,5 @@ -using VRBuilder.Core.Conditions; -using VRBuilder.BasicInteraction.Conditions; +using VRBuilder.BasicInteraction.Conditions; +using VRBuilder.Core.Conditions; using VRBuilder.Editor.UI.StepInspector.Menu; namespace VRBuilder.Editor.BasicInteraction.UI.Conditions @@ -8,7 +8,7 @@ namespace VRBuilder.Editor.BasicInteraction.UI.Conditions public class TeleportMenuItem : MenuItem { /// - public override string DisplayedName { get; } = "VR User/Teleport"; + public override string DisplayedName { get; } = "Locomotion/Teleport"; /// public override ICondition GetNewItem() diff --git a/Source/Basic-Interaction-Component/Editor/VRBuilder.Editor.BasicInteraction.asmdef b/Source/Basic-Interaction-Component/Editor/VRBuilder.Editor.BasicInteraction.asmdef index f4679fc05..27feb6c93 100644 --- a/Source/Basic-Interaction-Component/Editor/VRBuilder.Editor.BasicInteraction.asmdef +++ b/Source/Basic-Interaction-Component/Editor/VRBuilder.Editor.BasicInteraction.asmdef @@ -2,9 +2,9 @@ "name": "VRBuilder.Editor.BasicInteraction", "rootNamespace": "", "references": [ - "GUID:474da18fc7b8c9c4c9db09e343483375", - "GUID:e476a81b6ef7b824686666349a591a9a", - "GUID:c8561f9de838ac04d8feeda695bc572d" + "VRBuilder.BasicInteraction", + "VRBuilder.Editor", + "VRBuilder.Core" ], "includePlatforms": [ "Editor" diff --git a/Source/Basic-Interaction-Component/Runtime/Behaviors/UnsnapBehavior.cs b/Source/Basic-Interaction-Component/Runtime/Behaviors/UnsnapBehavior.cs index 4ea8ef665..a8e8b1448 100644 --- a/Source/Basic-Interaction-Component/Runtime/Behaviors/UnsnapBehavior.cs +++ b/Source/Basic-Interaction-Component/Runtime/Behaviors/UnsnapBehavior.cs @@ -1,13 +1,14 @@ +using Newtonsoft.Json; +using System; using System.Collections; using System.Runtime.Serialization; +using UnityEngine.Scripting; +using VRBuilder.BasicInteraction.Properties; +using VRBuilder.Core; using VRBuilder.Core.Attributes; +using VRBuilder.Core.Behaviors; using VRBuilder.Core.SceneObjects; using VRBuilder.Core.Utils; -using VRBuilder.BasicInteraction.Properties; -using VRBuilder.Core.Behaviors; -using VRBuilder.Core; -using Newtonsoft.Json; -using UnityEngine.Scripting; namespace VRBuilder.BasicInteraction.Behaviors { @@ -24,14 +25,26 @@ public class EntityData : IBehaviorData { [DataMember] [DisplayName("Object to unsnap")] + public SingleScenePropertyReference TargetObject { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TargetObject instead.")] + [LegacyProperty(nameof(TargetObject))] public ScenePropertyReference SnappedObject { get; set; } - + [DataMember] [DisplayName("Snap zone to unsnap")] + public SingleScenePropertyReference TargetSnapZone { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TargetSnapzone instead.")] + [LegacyProperty(nameof(TargetSnapZone))] public ScenePropertyReference SnapZone { get; set; } public Metadata Metadata { get; set; } - + /// [IgnoreDataMember] public string Name @@ -41,10 +54,10 @@ public string Name string snappedObject = "[NULL]"; string snapZone = "[NULL]"; - if(SnappedObject.IsEmpty() == false || SnapZone.IsEmpty() == false) + if (TargetObject.HasValue() || TargetSnapZone.HasValue()) { - snappedObject = SnappedObject.IsEmpty() ? "snapped object" : SnappedObject.Value.SceneObject.GameObject.name; - snapZone = SnapZone.IsEmpty() ? "its snap zone" : SnapZone.Value.SceneObject.GameObject.name; + snappedObject = TargetObject.HasValue() ? TargetObject.ToString() : "snapped object"; + snapZone = TargetSnapZone.HasValue() ? TargetSnapZone.ToString() : "its snap zone"; } return $"Unsnap {snappedObject} from {snapZone}"; @@ -53,18 +66,18 @@ public string Name } [JsonConstructor, Preserve] - public UnsnapBehavior() : this("", "") + public UnsnapBehavior() : this(Guid.Empty, Guid.Empty) { } - public UnsnapBehavior(ISnappableProperty snappedObject, ISnapZoneProperty snapZone) : this(ProcessReferenceUtils.GetNameFrom(snappedObject), ProcessReferenceUtils.GetNameFrom(snapZone)) + public UnsnapBehavior(ISnappableProperty snappedObject, ISnapZoneProperty snapZone) : this(ProcessReferenceUtils.GetUniqueIdFrom(snappedObject), ProcessReferenceUtils.GetUniqueIdFrom(snapZone)) { } - public UnsnapBehavior(string snappedObjectName, string snapZoneName) + public UnsnapBehavior(Guid snappedObjectId, Guid snapZoneId) { - Data.SnappedObject = new ScenePropertyReference(snappedObjectName); - Data.SnapZone = new ScenePropertyReference(snapZoneName); + Data.TargetObject = new SingleScenePropertyReference(snappedObjectId); + Data.TargetSnapZone = new SingleScenePropertyReference(snapZoneId); } private class ActivatingProcess : StageProcess @@ -75,40 +88,40 @@ public ActivatingProcess(EntityData data) : base(data) /// public override void Start() - { - } - - /// - public override IEnumerator Update() - { - yield return null; - } - - /// - public override void End() { ISnapZoneProperty snapZoneProperty = null; - if (Data.SnapZone.Value != null && (Data.SnapZone.Value.SnappedObject == Data.SnappedObject.Value || Data.SnappedObject.Value == null)) + if (Data.TargetSnapZone.Value != null && (Data.TargetSnapZone.Value.SnappedObject == Data.TargetObject.Value || Data.TargetObject.Value == null)) { - snapZoneProperty = Data.SnapZone.Value; + snapZoneProperty = Data.TargetSnapZone.Value; } - else if(Data.SnapZone.Value == null && Data.SnappedObject.Value != null && Data.SnappedObject.Value.IsSnapped) + else if (Data.TargetSnapZone.Value == null && Data.TargetObject.Value != null && Data.TargetObject.Value.IsSnapped) { - snapZoneProperty = Data.SnappedObject.Value.SnappedZone; + snapZoneProperty = Data.TargetObject.Value.SnappedZone; } - if(snapZoneProperty != null) + if (snapZoneProperty != null) { ISnapZone snapZone = snapZoneProperty.SnapZoneObject.GetComponent(); - if(snapZone != null) + if (snapZone != null) { snapZone.ForceRelease(); } } } + /// + public override IEnumerator Update() + { + yield return null; + } + + /// + public override void End() + { + } + /// public override void FastForward() { diff --git a/Source/Basic-Interaction-Component/Runtime/Conditions/GrabbedCondition.cs b/Source/Basic-Interaction-Component/Runtime/Conditions/GrabbedCondition.cs index 9e33e6f6a..e1d7b5370 100644 --- a/Source/Basic-Interaction-Component/Runtime/Conditions/GrabbedCondition.cs +++ b/Source/Basic-Interaction-Component/Runtime/Conditions/GrabbedCondition.cs @@ -1,5 +1,7 @@ -using Newtonsoft.Json; +using Newtonsoft.Json; +using System; using System.Collections.Generic; +using System.Linq; using System.Runtime.Serialization; using UnityEngine.Scripting; using VRBuilder.BasicInteraction.Properties; @@ -8,44 +10,36 @@ using VRBuilder.Core.Conditions; using VRBuilder.Core.RestrictiveEnvironment; using VRBuilder.Core.SceneObjects; -using VRBuilder.Core.Utils; -using VRBuilder.Core.Validation; namespace VRBuilder.BasicInteraction.Conditions { /// - /// Condition which is completed when `GrabbableProperty` is grabbed. + /// Condition which is completed when a is grabbed. /// [DataContract(IsReference = true)] - [HelpLink("https://www.mindport.co/vr-builder/manual/default-conditions/grab-object")] public class GrabbedCondition : Condition { [DisplayName("Grab Object")] public class EntityData : IConditionData { -#if CREATOR_PRO - [CheckForCollider] -#endif [DataMember] - [DisplayName("Object")] + [DisplayName("Grabbable objects")] + public MultipleScenePropertyReference Targets { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use Targets instead.")] + [LegacyProperty(nameof(Targets))] public ScenePropertyReference GrabbableProperty { get; set; } - + public bool IsCompleted { get; set; } [IgnoreDataMember] [HideInProcessInspector] - public string Name - { - get - { - string grabbableProperty = GrabbableProperty.IsEmpty() ? "[NULL]" : GrabbableProperty.Value.SceneObject.GameObject.name; - - return $"Grab {grabbableProperty}"; - } - } + public string Name => $"Grab {Targets}"; [DataMember] - [DisplayName("Keep object grabbable after step")] + [DisplayName("Keep objects grabbable after step")] public bool KeepUnlocked = true; public Metadata Metadata { get; set; } @@ -57,9 +51,15 @@ public EntityAutocompleter(EntityData data) : base(data) { } + /// public override void Complete() { - Data.GrabbableProperty.Value.FastForwardGrab(); + IGrabbableProperty grabbableProperty = Data.Targets.Values.FirstOrDefault(); + + if (grabbableProperty != null) + { + grabbableProperty.FastForwardGrab(); + } } } @@ -67,7 +67,7 @@ private class ActiveProcess : BaseActiveProcessOverCompletable { protected override bool CheckIfCompleted() { - return Data.GrabbableProperty.Value.IsGrabbed; + return Data.Targets.Values.Any(property => property.IsGrabbed); } public ActiveProcess(EntityData data) : base(data) @@ -76,19 +76,15 @@ public ActiveProcess(EntityData data) : base(data) } [JsonConstructor, Preserve] - public GrabbedCondition() : this("") + public GrabbedCondition() : this(Guid.Empty) { } - public GrabbedCondition(IGrabbableProperty target) : this(ProcessReferenceUtils.GetNameFrom(target)) + public GrabbedCondition(Guid guid) { + Data.Targets = new MultipleScenePropertyReference(guid); } - public GrabbedCondition(string target) - { - Data.GrabbableProperty = new ScenePropertyReference(target); - } - public override IEnumerable GetLockableProperties() { IEnumerable references = base.GetLockableProperties(); diff --git a/Source/Basic-Interaction-Component/Runtime/Conditions/GrabbedCondition.cs.meta b/Source/Basic-Interaction-Component/Runtime/Conditions/GrabbedCondition.cs.meta index 456f95a9f..3213f9776 100644 --- a/Source/Basic-Interaction-Component/Runtime/Conditions/GrabbedCondition.cs.meta +++ b/Source/Basic-Interaction-Component/Runtime/Conditions/GrabbedCondition.cs.meta @@ -1,7 +1,5 @@ fileFormatVersion: 2 -guid: 7b1656781695e09409c0ca348d8390ab -timeCreated: 1528188588 -licenseType: Pro +guid: 2f43aa63216269b44838d08449abc8bb MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Source/Basic-Interaction-Component/Runtime/Conditions/GrabbedObjectWithTagCondition.cs b/Source/Basic-Interaction-Component/Runtime/Conditions/GrabbedObjectWithTagCondition.cs index 9b5b2d413..177069413 100644 --- a/Source/Basic-Interaction-Component/Runtime/Conditions/GrabbedObjectWithTagCondition.cs +++ b/Source/Basic-Interaction-Component/Runtime/Conditions/GrabbedObjectWithTagCondition.cs @@ -8,10 +8,8 @@ using VRBuilder.Core; using VRBuilder.Core.Attributes; using VRBuilder.Core.Conditions; -using VRBuilder.Core.Configuration; using VRBuilder.Core.RestrictiveEnvironment; using VRBuilder.Core.SceneObjects; -using VRBuilder.Core.Settings; namespace VRBuilder.BasicInteraction.Conditions { @@ -19,29 +17,27 @@ namespace VRBuilder.BasicInteraction.Conditions /// Condition which is completed when a with the given tag is grabbed. /// [DataContract(IsReference = true)] + [Obsolete("Use GrabbedCondition instead.")] public class GrabbedObjectWithTagCondition : Condition { [DisplayName("Grab Object with Tag")] public class EntityData : IConditionData { [DataMember] - [DisplayName("Tag")] + [DisplayName("Grabbable objects")] + public MultipleScenePropertyReference Targets { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use Targets instead.")] + [LegacyProperty(nameof(Targets))] public SceneObjectTag Tag { get; set; } public bool IsCompleted { get; set; } [IgnoreDataMember] [HideInProcessInspector] - public string Name - { - get - { - string tag = SceneObjectTags.Instance.GetLabel(Tag.Guid); - tag = string.IsNullOrEmpty(tag) ? "" : tag; - - return $"Grab a {tag} object"; - } - } + public string Name => $"Grab {Targets}"; [DataMember] [DisplayName("Keep objects grabbable after step")] @@ -56,15 +52,12 @@ public EntityAutocompleter(EntityData data) : base(data) { } + /// public override void Complete() { - IGrabbableProperty grabbableProperty = RuntimeConfigurator.Configuration.SceneObjectRegistry.GetByTag(Data.Tag.Guid) - .Where(sceneObject => sceneObject.Properties.Any(property => property is IGrabbableProperty)) - .Select(sceneObject => sceneObject.Properties.First(property => property is IGrabbableProperty)) - .Cast() - .FirstOrDefault(); + IGrabbableProperty grabbableProperty = Data.Targets.Values.FirstOrDefault(); - if(grabbableProperty != null) + if (grabbableProperty != null) { grabbableProperty.FastForwardGrab(); } @@ -73,21 +66,9 @@ public override void Complete() private class ActiveProcess : BaseActiveProcessOverCompletable { - IEnumerable grabbableProperties; - - public override void Start() - { - base.Start(); - - grabbableProperties = RuntimeConfigurator.Configuration.SceneObjectRegistry.GetByTag(Data.Tag.Guid) - .Where(sceneObject => sceneObject.Properties.Any(property => property is IGrabbableProperty)) - .Select(sceneObject => sceneObject.Properties.First(property => property is IGrabbableProperty)) - .Cast(); - } - protected override bool CheckIfCompleted() { - return grabbableProperties.Any(property => property.IsGrabbed); + return Data.Targets.Values.Any(property => property.IsGrabbed); } public ActiveProcess(EntityData data) : base(data) @@ -102,7 +83,7 @@ public GrabbedObjectWithTagCondition() : this(Guid.Empty) public GrabbedObjectWithTagCondition(Guid guid) { - Data.Tag = new SceneObjectTag(guid); + Data.Targets = new MultipleScenePropertyReference(guid); } public override IEnumerable GetLockableProperties() diff --git a/Source/Basic-Interaction-Component/Runtime/Conditions/GrabbedObjectWithTagCondition.cs.meta b/Source/Basic-Interaction-Component/Runtime/Conditions/GrabbedObjectWithTagCondition.cs.meta index 3213f9776..b5a8edb11 100644 --- a/Source/Basic-Interaction-Component/Runtime/Conditions/GrabbedObjectWithTagCondition.cs.meta +++ b/Source/Basic-Interaction-Component/Runtime/Conditions/GrabbedObjectWithTagCondition.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2f43aa63216269b44838d08449abc8bb +guid: 0479db9ec98e6934ab871bc01d01e4d2 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Source/Basic-Interaction-Component/Runtime/Conditions/ReleasedCondition.cs b/Source/Basic-Interaction-Component/Runtime/Conditions/ReleasedCondition.cs index dc94a9dce..64b33fa96 100644 --- a/Source/Basic-Interaction-Component/Runtime/Conditions/ReleasedCondition.cs +++ b/Source/Basic-Interaction-Component/Runtime/Conditions/ReleasedCondition.cs @@ -1,4 +1,6 @@ using Newtonsoft.Json; +using System; +using System.Linq; using System.Runtime.Serialization; using UnityEngine.Scripting; using VRBuilder.BasicInteraction.Properties; @@ -7,7 +9,6 @@ using VRBuilder.Core.Conditions; using VRBuilder.Core.SceneObjects; using VRBuilder.Core.Utils; -using VRBuilder.Core.Validation; namespace VRBuilder.BasicInteraction.Conditions { @@ -21,26 +22,21 @@ public class ReleasedCondition : Condition [DisplayName("Release Object")] public class EntityData : IConditionData { -#if CREATOR_PRO - [CheckForCollider] -#endif [DataMember] - [DisplayName("Object")] + [DisplayName("Grabbable objects")] + public MultipleScenePropertyReference GrabbableProperties { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use GrabbableProperties instead.")] + [LegacyProperty(nameof(GrabbableProperties))] public ScenePropertyReference GrabbableProperty { get; set; } public bool IsCompleted { get; set; } [IgnoreDataMember] [HideInProcessInspector] - public string Name - { - get - { - string grabbableProperty = GrabbableProperty.IsEmpty() ? "[NULL]" : GrabbableProperty.Value.SceneObject.GameObject.name; - - return $"Release {grabbableProperty}"; - } - } + public string Name => $"Release {GrabbableProperties}"; public Metadata Metadata { get; set; } } @@ -53,7 +49,7 @@ public ActiveProcess(EntityData data) : base(data) protected override bool CheckIfCompleted() { - return Data.GrabbableProperty.Value.IsGrabbed == false; + return Data.GrabbableProperties.Values.All(property => property.IsGrabbed == false); } } @@ -65,22 +61,27 @@ public EntityAutocompleter(EntityData data) : base(data) public override void Complete() { - Data.GrabbableProperty.Value.FastForwardUngrab(); + IGrabbableProperty grabbableProperty = Data.GrabbableProperties.Values.FirstOrDefault(property => property.IsGrabbed); + + if (grabbableProperty != null) + { + grabbableProperty.FastForwardUngrab(); + } } } [JsonConstructor, Preserve] - public ReleasedCondition() : this("") + public ReleasedCondition() : this(Guid.Empty) { } - public ReleasedCondition(IGrabbableProperty target) : this(ProcessReferenceUtils.GetNameFrom(target)) + public ReleasedCondition(IGrabbableProperty target) : this(ProcessReferenceUtils.GetUniqueIdFrom(target)) { } - public ReleasedCondition(string target) + public ReleasedCondition(Guid uniqueId) { - Data.GrabbableProperty = new ScenePropertyReference(target); + Data.GrabbableProperties = new MultipleScenePropertyReference(uniqueId); } public override IStageProcess GetActiveProcess() diff --git a/Source/Basic-Interaction-Component/Runtime/Conditions/SnappedCondition.cs b/Source/Basic-Interaction-Component/Runtime/Conditions/SnappedCondition.cs index 93fa98105..6873d5d9e 100644 --- a/Source/Basic-Interaction-Component/Runtime/Conditions/SnappedCondition.cs +++ b/Source/Basic-Interaction-Component/Runtime/Conditions/SnappedCondition.cs @@ -1,5 +1,6 @@ -using Newtonsoft.Json; +using Newtonsoft.Json; using System; +using System.Linq; using System.Runtime.Serialization; using UnityEngine.Scripting; using VRBuilder.BasicInteraction.Properties; @@ -9,56 +10,45 @@ using VRBuilder.Core.Configuration.Modes; using VRBuilder.Core.SceneObjects; using VRBuilder.Core.Utils; -using VRBuilder.Core.Validation; namespace VRBuilder.BasicInteraction.Conditions { /// - /// Condition which is completed when `Target` is snapped into `ZoneToSnapInto`. + /// Condition which is completed when an object from a given pool is snapped into a target snap zone. /// [DataContract(IsReference = true)] [HelpLink("https://www.mindport.co/vr-builder/manual/default-conditions/snap-object")] public class SnappedCondition : Condition { - [DisplayName("Snap Object (Ref)")] + [DisplayName("Snap Object")] [DataContract(IsReference = true)] public class EntityData : IConditionData { -#if CREATOR_PRO - [CheckForCollider] -#endif [DataMember] - [DisplayName("Object")] + [DisplayName("Snappable Objects")] + public MultipleScenePropertyReference TargetObjects { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TargetObjects instead.")] + [LegacyProperty(nameof(TargetObjects))] public ScenePropertyReference Target { get; set; } -#if CREATOR_PRO - [CheckForCollider] - [ColliderAreTrigger] -#endif [DataMember] [DisplayName("Zone to snap into")] + public SingleScenePropertyReference TargetSnapZone { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TargetSnapZone instead.")] + [LegacyProperty(nameof(TargetSnapZone))] public ScenePropertyReference ZoneToSnapInto { get; set; } public bool IsCompleted { get; set; } [IgnoreDataMember] [HideInProcessInspector] - public string Name - { - get - { - string target = "[NULL]"; - string zoneToSnapInto = "[NULL]"; - - if (Target.IsEmpty() == false || ZoneToSnapInto.IsEmpty() == false) - { - target = Target.IsEmpty() ? "any valid object" : Target.Value.SceneObject.GameObject.name; - zoneToSnapInto = ZoneToSnapInto.IsEmpty() ? "any valid snap zone" : ZoneToSnapInto.Value.SceneObject.GameObject.name; - } - - return $"Snap {target} in {zoneToSnapInto}"; - } - } + public string Name => $"Snap {TargetObjects} in {TargetSnapZone}"; public Metadata Metadata { get; set; } } @@ -71,19 +61,7 @@ public ActiveProcess(EntityData data) : base(data) protected override bool CheckIfCompleted() { - if(Data.Target.Value == null && Data.ZoneToSnapInto.Value == null) - { - throw new NullReferenceException("Snapped condition is not configured."); - } - - if (Data.Target.Value == null) - { - return Data.ZoneToSnapInto.Value.SnappedObject != null; - } - else - { - return Data.Target.Value.IsSnapped && (Data.ZoneToSnapInto.Value == null || Data.ZoneToSnapInto.Value == Data.Target.Value.SnappedZone); - } + return Data.TargetObjects.Values.Any(snappable => snappable.IsSnapped && snappable.SnappedZone == Data.TargetSnapZone.Value); } } @@ -95,12 +73,12 @@ public EntityAutocompleter(EntityData data) : base(data) public override void Complete() { - if (Data.ZoneToSnapInto.Value == null) + ISnappableProperty snappable = Data.TargetObjects.Values.FirstOrDefault(snappable => snappable.IsSnapped == false); + + if (snappable != null && Data.TargetSnapZone.Value.IsObjectSnapped == false) { - return; + snappable.FastForwardSnapInto(Data.TargetSnapZone.Value); } - - Data.Target.Value.FastForwardSnapInto(Data.ZoneToSnapInto.Value); } } @@ -112,28 +90,23 @@ public EntityConfigurator(EntityData data) : base(data) public override void Configure(IMode mode, Stage stage) { - if(Data.ZoneToSnapInto.Value == null) - { - return; - } - - Data.ZoneToSnapInto.Value.Configure(mode); + Data.TargetSnapZone.Value.Configure(mode); } } [JsonConstructor, Preserve] - public SnappedCondition() : this("", "") + public SnappedCondition() : this(Guid.Empty, Guid.Empty) { } - public SnappedCondition(ISnappableProperty target, ISnapZoneProperty snapZone = null) : this(ProcessReferenceUtils.GetNameFrom(target), ProcessReferenceUtils.GetNameFrom(snapZone)) + public SnappedCondition(Guid targets, Guid snapZone) { + Data.TargetObjects = new MultipleScenePropertyReference(targets); + Data.TargetSnapZone = new SingleScenePropertyReference(snapZone); } - public SnappedCondition(string target, string snapZone) + public SnappedCondition(ISnappableProperty target, ISnapZoneProperty snapZone) : this(ProcessReferenceUtils.GetUniqueIdFrom(target), ProcessReferenceUtils.GetUniqueIdFrom(snapZone)) { - Data.Target = new ScenePropertyReference(target); - Data.ZoneToSnapInto = new ScenePropertyReference(snapZone); } public override IStageProcess GetActiveProcess() diff --git a/Source/Basic-Interaction-Component/Runtime/Conditions/SnappedCondition.cs.meta b/Source/Basic-Interaction-Component/Runtime/Conditions/SnappedCondition.cs.meta index b797912b7..2d61c30ed 100644 --- a/Source/Basic-Interaction-Component/Runtime/Conditions/SnappedCondition.cs.meta +++ b/Source/Basic-Interaction-Component/Runtime/Conditions/SnappedCondition.cs.meta @@ -1,7 +1,5 @@ fileFormatVersion: 2 guid: 99b26f8e3a90cd8419451933c9e6f9a6 -timeCreated: 1528191395 -licenseType: Pro MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Source/Basic-Interaction-Component/Runtime/Conditions/SnappedObjectWithTagCondition.cs b/Source/Basic-Interaction-Component/Runtime/Conditions/SnappedObjectWithTagCondition.cs index fbc7162bb..1e78e9f59 100644 --- a/Source/Basic-Interaction-Component/Runtime/Conditions/SnappedObjectWithTagCondition.cs +++ b/Source/Basic-Interaction-Component/Runtime/Conditions/SnappedObjectWithTagCondition.cs @@ -1,6 +1,5 @@ using Newtonsoft.Json; using System; -using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using UnityEngine.Scripting; @@ -8,18 +7,18 @@ using VRBuilder.Core; using VRBuilder.Core.Attributes; using VRBuilder.Core.Conditions; -using VRBuilder.Core.Configuration; using VRBuilder.Core.Configuration.Modes; using VRBuilder.Core.SceneObjects; -using VRBuilder.Core.Settings; +using VRBuilder.Core.Utils; namespace VRBuilder.BasicInteraction.Conditions { /// - /// Condition which is completed when an object with the given tag is snapped into `ZoneToSnapInto`. + /// Condition which is completed when an object from a given pool is snapped into a target snap zone. /// [DataContract(IsReference = true)] [HelpLink("https://www.mindport.co/vr-builder/manual/default-conditions/snap-object")] + [Obsolete("Use SnappedCondition instead.")] public class SnappedObjectWithTagCondition : Condition { [DisplayName("Snap Object (Tag)")] @@ -27,53 +26,43 @@ public class SnappedObjectWithTagCondition : Condition TargetObjects { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TargetObjects instead.")] + [LegacyProperty(nameof(TargetObjects))] public SceneObjectTag Tag { get; set; } [DataMember] [DisplayName("Zone to snap into")] + public SingleScenePropertyReference TargetSnapZone { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TargetSnapZone instead.")] + [LegacyProperty(nameof(TargetSnapZone))] public ScenePropertyReference ZoneToSnapInto { get; set; } public bool IsCompleted { get; set; } [IgnoreDataMember] [HideInProcessInspector] - public string Name - { - get - { - string tag = SceneObjectTags.Instance.GetLabel(Tag.Guid); - tag = string.IsNullOrEmpty(tag) ? "" : tag; - string zoneToSnapInto = ZoneToSnapInto.IsEmpty() ? "[NULL]" : ZoneToSnapInto.Value.SceneObject.GameObject.name; - - return $"Snap a {tag} object in {zoneToSnapInto}"; - } - } + public string Name => $"Snap {TargetObjects} in {TargetSnapZone}"; public Metadata Metadata { get; set; } } private class ActiveProcess : BaseActiveProcessOverCompletable { - IEnumerable snappableProperties; - public ActiveProcess(EntityData data) : base(data) { } - public override void Start() - { - base.Start(); - - snappableProperties = RuntimeConfigurator.Configuration.SceneObjectRegistry.GetByTag(Data.Tag.Guid) - .Where(sceneObject => sceneObject.Properties.Any(property => property is ISnappableProperty)) - .Select(sceneObject => sceneObject.Properties.First(property => property is ISnappableProperty)) - .Cast(); - } - protected override bool CheckIfCompleted() { - return snappableProperties.Where(property => property.IsSnapped).Any(property => property.SnappedZone == Data.ZoneToSnapInto.Value); + return Data.TargetObjects.Values.Any(snappable => snappable.IsSnapped && snappable.SnappedZone == Data.TargetSnapZone.Value); } } @@ -85,16 +74,11 @@ public EntityAutocompleter(EntityData data) : base(data) public override void Complete() { - ISnappableProperty snappable = RuntimeConfigurator.Configuration.SceneObjectRegistry.GetByTag(Data.Tag.Guid) - .Where(sceneObject => sceneObject.Properties.Any(property => property is ISnappableProperty)) - .Select(sceneObject => sceneObject.Properties.First(property => property is ISnappableProperty)) - .Cast() - .Where(snappable => snappable.IsSnapped == false) - .FirstOrDefault(); - - if (snappable != null && Data.ZoneToSnapInto.Value.IsObjectSnapped == false) + ISnappableProperty snappable = Data.TargetObjects.Values.FirstOrDefault(snappable => snappable.IsSnapped == false); + + if (snappable != null && Data.TargetSnapZone.Value.IsObjectSnapped == false) { - snappable.FastForwardSnapInto(Data.ZoneToSnapInto.Value); + snappable.FastForwardSnapInto(Data.TargetSnapZone.Value); } } } @@ -107,19 +91,23 @@ public EntityConfigurator(EntityData data) : base(data) public override void Configure(IMode mode, Stage stage) { - Data.ZoneToSnapInto.Value.Configure(mode); + Data.TargetSnapZone.Value.Configure(mode); } } [JsonConstructor, Preserve] - public SnappedObjectWithTagCondition() : this(Guid.Empty, "") + public SnappedObjectWithTagCondition() : this(Guid.Empty, Guid.Empty) + { + } + + public SnappedObjectWithTagCondition(Guid targets, Guid snapZone) { + Data.TargetObjects = new MultipleScenePropertyReference(targets); + Data.TargetSnapZone = new SingleScenePropertyReference(snapZone); } - public SnappedObjectWithTagCondition(Guid guid, string snapZone) + public SnappedObjectWithTagCondition(ISnappableProperty target, ISnapZoneProperty snapZone) : this(ProcessReferenceUtils.GetUniqueIdFrom(target), ProcessReferenceUtils.GetUniqueIdFrom(snapZone)) { - Data.Tag = new SceneObjectTag(guid); - Data.ZoneToSnapInto = new ScenePropertyReference(snapZone); } public override IStageProcess GetActiveProcess() diff --git a/Source/Basic-Interaction-Component/Runtime/Conditions/TeleportCondition.cs b/Source/Basic-Interaction-Component/Runtime/Conditions/TeleportCondition.cs index e23d3c2b3..ebb9609fe 100644 --- a/Source/Basic-Interaction-Component/Runtime/Conditions/TeleportCondition.cs +++ b/Source/Basic-Interaction-Component/Runtime/Conditions/TeleportCondition.cs @@ -1,13 +1,14 @@ +using Newtonsoft.Json; +using System; +using System.Linq; using System.Runtime.Serialization; +using UnityEngine.Scripting; +using VRBuilder.BasicInteraction.Properties; using VRBuilder.Core; -using VRBuilder.Core.Utils; -using VRBuilder.Core.Validation; using VRBuilder.Core.Attributes; using VRBuilder.Core.Conditions; using VRBuilder.Core.SceneObjects; -using VRBuilder.BasicInteraction.Properties; -using Newtonsoft.Json; -using UnityEngine.Scripting; +using VRBuilder.Core.Utils; namespace VRBuilder.BasicInteraction.Conditions { @@ -23,10 +24,14 @@ public class TeleportCondition : Condition public class EntityData : IConditionData { [DataMember] - [DisplayName("Teleportation Point")] -#if CREATOR_PRO - [CheckForCollider] -#endif + [DisplayName("Teleportation Points")] + + public MultipleScenePropertyReference TeleportationPoints { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TeleportationPoints instead.")] + [LegacyProperty(nameof(TeleportationPoints))] public ScenePropertyReference TeleportationPoint { get; set; } /// @@ -35,31 +40,24 @@ public class EntityData : IConditionData /// [IgnoreDataMember] [HideInProcessInspector] - public string Name - { - get - { - string teleportationPoint = TeleportationPoint.IsEmpty() ? "[NULL]" : TeleportationPoint.Value.SceneObject.GameObject.name; + public string Name => $"Teleport to {TeleportationPoints}"; - return $"Teleport to {teleportationPoint}"; - } - } /// public Metadata Metadata { get; set; } } [JsonConstructor, Preserve] - public TeleportCondition() : this( "") + public TeleportCondition() : this(Guid.Empty) { } - public TeleportCondition(ITeleportationProperty teleportationPoint) : this(ProcessReferenceUtils.GetNameFrom(teleportationPoint)) + public TeleportCondition(ITeleportationProperty teleportationPoint) : this(ProcessReferenceUtils.GetUniqueIdFrom(teleportationPoint)) { } - public TeleportCondition(string teleportationPoint) + public TeleportCondition(Guid teleportationPoint) { - Data.TeleportationPoint = new ScenePropertyReference(teleportationPoint); + Data.TeleportationPoints = new MultipleScenePropertyReference(teleportationPoint); } private class ActiveProcess : BaseActiveProcessOverCompletable @@ -67,18 +65,22 @@ private class ActiveProcess : BaseActiveProcessOverCompletable public ActiveProcess(EntityData data) : base(data) { } - + /// public override void Start() { base.Start(); - Data.TeleportationPoint.Value.Initialize(); + + foreach (ITeleportationProperty teleportationProperty in Data.TeleportationPoints.Values) + { + teleportationProperty.Initialize(); + } } /// protected override bool CheckIfCompleted() { - return Data.TeleportationPoint.Value.WasUsedToTeleport; + return Data.TeleportationPoints.Values.Any(teleportationPoint => teleportationPoint.WasUsedToTeleport); } } @@ -91,7 +93,7 @@ public EntityAutocompleter(EntityData data) : base(data) /// public override void Complete() { - Data.TeleportationPoint.Value.FastForwardTeleport(); + Data.TeleportationPoints.Values.FirstOrDefault()?.FastForwardTeleport(); } } diff --git a/Source/Basic-Interaction-Component/Runtime/Conditions/TouchedCondition.cs b/Source/Basic-Interaction-Component/Runtime/Conditions/TouchedCondition.cs index 4c1329b07..42f729100 100644 --- a/Source/Basic-Interaction-Component/Runtime/Conditions/TouchedCondition.cs +++ b/Source/Basic-Interaction-Component/Runtime/Conditions/TouchedCondition.cs @@ -1,4 +1,6 @@ using Newtonsoft.Json; +using System; +using System.Linq; using System.Runtime.Serialization; using UnityEngine.Scripting; using VRBuilder.BasicInteraction.Properties; @@ -7,7 +9,6 @@ using VRBuilder.Core.Conditions; using VRBuilder.Core.SceneObjects; using VRBuilder.Core.Utils; -using VRBuilder.Core.Validation; namespace VRBuilder.BasicInteraction.Conditions { @@ -21,26 +22,21 @@ public class TouchedCondition : Condition [DisplayName("Touch Object")] public class EntityData : IConditionData { -#if CREATOR_PRO - [CheckForCollider] -#endif [DataMember] - [DisplayName("Object")] + [DisplayName("Touchable objects")] + public MultipleScenePropertyReference TouchableProperties { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use TouchableProperties instead.")] + [LegacyProperty(nameof(TouchableProperties))] public ScenePropertyReference TouchableProperty { get; set; } public bool IsCompleted { get; set; } [IgnoreDataMember] [HideInProcessInspector] - public string Name - { - get - { - string touchableProperty = TouchableProperty.IsEmpty() ? "[NULL]" : TouchableProperty.Value.SceneObject.GameObject.name; - - return $"Touch {touchableProperty}"; - } - } + public string Name => $"Touch {TouchableProperties}"; public Metadata Metadata { get; set; } } @@ -53,7 +49,7 @@ public ActiveProcess(EntityData data) : base(data) protected override bool CheckIfCompleted() { - return Data.TouchableProperty.Value.IsBeingTouched; + return Data.TouchableProperties.Values.Any(property => property.IsBeingTouched); } } @@ -65,23 +61,33 @@ public EntityAutocompleter(EntityData data) : base(data) public override void Complete() { - Data.TouchableProperty.Value.FastForwardTouch(); + ITouchableProperty property = Data.TouchableProperties.Values.FirstOrDefault(); + + if (property != null) + { + property.FastForwardTouch(); + } } } [JsonConstructor, Preserve] - public TouchedCondition() : this("") + public TouchedCondition() : this(Guid.Empty) { } // ReSharper disable once SuggestBaseTypeForParameter - public TouchedCondition(ITouchableProperty target) : this(ProcessReferenceUtils.GetNameFrom(target)) + public TouchedCondition(ITouchableProperty target) : this(ProcessReferenceUtils.GetUniqueIdFrom(target)) + { + } + + public TouchedCondition(Guid uniqueId) { + Data.TouchableProperties = new MultipleScenePropertyReference(uniqueId); } - public TouchedCondition(string target) + [Obsolete("This constructor only supports guids and will be removed in the next major version.")] + public TouchedCondition(string uniqueId) : this(Guid.Parse(uniqueId)) { - Data.TouchableProperty = new ScenePropertyReference(target); } public override IStageProcess GetActiveProcess() diff --git a/Source/Basic-Interaction-Component/Runtime/Conditions/UsedCondition.cs b/Source/Basic-Interaction-Component/Runtime/Conditions/UsedCondition.cs index ce7ccd19c..c4d7e227c 100644 --- a/Source/Basic-Interaction-Component/Runtime/Conditions/UsedCondition.cs +++ b/Source/Basic-Interaction-Component/Runtime/Conditions/UsedCondition.cs @@ -1,4 +1,5 @@ using Newtonsoft.Json; +using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; @@ -10,7 +11,6 @@ using VRBuilder.Core.RestrictiveEnvironment; using VRBuilder.Core.SceneObjects; using VRBuilder.Core.Utils; -using VRBuilder.Core.Validation; namespace VRBuilder.BasicInteraction.Conditions { @@ -24,26 +24,21 @@ public class UsedCondition : Condition [DisplayName("Use Object")] public class EntityData : IConditionData { -#if CREATOR_PRO - [CheckForCollider] -#endif [DataMember] - [DisplayName("Object")] + [DisplayName("Objects")] + public MultipleScenePropertyReference UsableObjects { get; set; } + + [DataMember] + [HideInProcessInspector] + [Obsolete("Use UsableObjects instead.")] + [LegacyProperty(nameof(UsableObjects))] public ScenePropertyReference UsableProperty { get; set; } public bool IsCompleted { get; set; } [IgnoreDataMember] [HideInProcessInspector] - public string Name - { - get - { - string usableProperty = UsableProperty.IsEmpty() ? "[NULL]" : UsableProperty.Value.SceneObject.GameObject.name; - - return $"Use {usableProperty}"; - } - } + public string Name => $"Use {UsableObjects}"; public Metadata Metadata { get; set; } } @@ -56,7 +51,7 @@ public ActiveProcess(EntityData data) : base(data) protected override bool CheckIfCompleted() { - return Data.UsableProperty.Value.IsBeingUsed; + return Data.UsableObjects.Values.Any(usable => usable.IsBeingUsed); } } @@ -68,24 +63,32 @@ public EntityAutocompleter(EntityData data) : base(data) public override void Complete() { - Data.UsableProperty.Value.FastForwardUse(); + Data.UsableObjects.Values.FirstOrDefault()?.FastForwardUse(); } } [JsonConstructor, Preserve] - public UsedCondition() : this("") + public UsedCondition() : this(Guid.Empty) { } - public UsedCondition(IUsableProperty target) : this(ProcessReferenceUtils.GetNameFrom(target)) + public UsedCondition(IUsableProperty target) : this(ProcessReferenceUtils.GetUniqueIdFrom(target)) { } + [Obsolete("This constructor will be removed in the next major version.")] public UsedCondition(string target) { - Data.UsableProperty = new ScenePropertyReference(target); + Guid guid = Guid.Empty; + Guid.TryParse(target, out guid); + Data.UsableObjects = new MultipleScenePropertyReference(guid); + } + + public UsedCondition(Guid target) + { + Data.UsableObjects = new MultipleScenePropertyReference(target); } - + public override IEnumerable GetLockableProperties() { IEnumerable references = base.GetLockableProperties(); diff --git a/Source/Basic-Interaction-Component/Runtime/Properties/ISnapZoneProperty.cs b/Source/Basic-Interaction-Component/Runtime/Properties/ISnapZoneProperty.cs index 119d816e6..c4d10f0bb 100644 --- a/Source/Basic-Interaction-Component/Runtime/Properties/ISnapZoneProperty.cs +++ b/Source/Basic-Interaction-Component/Runtime/Properties/ISnapZoneProperty.cs @@ -1,20 +1,14 @@ using System; -using VRBuilder.Core.Configuration.Modes; -using VRBuilder.Core.SceneObjects; -using VRBuilder.Core.Properties; using UnityEngine; using UnityEngine.Events; +using VRBuilder.Core.Configuration.Modes; +using VRBuilder.Core.Properties; +using VRBuilder.Core.SceneObjects; namespace VRBuilder.BasicInteraction.Properties { public interface ISnapZoneProperty : ISceneObjectProperty, ILockable { - [Obsolete("Use ObjectAttached instead.")] - event EventHandler ObjectSnapped; - - [Obsolete("Use ObjectDetached instead.")] - event EventHandler ObjectUnsnapped; - /// /// Called when an object is snapped to the snap zone. /// @@ -24,22 +18,22 @@ public interface ISnapZoneProperty : ISceneObjectProperty, ILockable /// Called when an object is unsnapped from the snap zone. /// UnityEvent ObjectDetached { get; } - + /// /// Currently has an object snapped into this snap zone. /// bool IsObjectSnapped { get; } - + /// /// Object which is snapped into this snap zone. /// ISnappableProperty SnappedObject { get; set; } - + /// /// Snap zone object. /// GameObject SnapZoneObject { get; } - + // TODO: Probably make a IConfigurable interface for modes void Configure(IMode mode); } diff --git a/Source/Basic-Interaction-Component/Runtime/Properties/ISnappableProperty.cs b/Source/Basic-Interaction-Component/Runtime/Properties/ISnappableProperty.cs index 13228878a..a4c8f81fd 100644 --- a/Source/Basic-Interaction-Component/Runtime/Properties/ISnappableProperty.cs +++ b/Source/Basic-Interaction-Component/Runtime/Properties/ISnappableProperty.cs @@ -7,12 +7,6 @@ namespace VRBuilder.BasicInteraction.Properties { public interface ISnappableProperty : ISceneObjectProperty, ILockable { - [Obsolete("Use AttachedToSnapZone instead.")] - event EventHandler Snapped; - - [Obsolete("Use DetachedFromSnapZone instead.")] - event EventHandler Unsnapped; - /// /// Called when the object is snapped to a snap zone. /// @@ -27,12 +21,12 @@ public interface ISnappableProperty : ISceneObjectProperty, ILockable /// Is object currently snapped. /// bool IsSnapped { get; } - + /// /// Will object be locked when it has been snapped. /// bool LockObjectOnSnap { get; } - + /// /// Zone to snap into. /// diff --git a/Source/Basic-Interaction-Component/Runtime/Properties/ITeleportationProperty.cs b/Source/Basic-Interaction-Component/Runtime/Properties/ITeleportationProperty.cs index 7541699d5..9d43da053 100644 --- a/Source/Basic-Interaction-Component/Runtime/Properties/ITeleportationProperty.cs +++ b/Source/Basic-Interaction-Component/Runtime/Properties/ITeleportationProperty.cs @@ -10,12 +10,6 @@ namespace VRBuilder.BasicInteraction.Properties /// public interface ITeleportationProperty : ISceneObjectProperty, ILockable { - /// - /// Emitted when a teleportation action into this was done. - /// - [Obsolete("Use TeleportEnded instead.")] - event EventHandler Teleported; - /// /// Emitted when a teleportation action into this was done. /// @@ -30,12 +24,12 @@ public interface ITeleportationProperty : ISceneObjectProperty, ILockable /// True if the teleportation property is ready to be teleported to. /// bool IsActive { get; } - + /// /// True if a teleportation action into this was done. /// bool WasUsedToTeleport { get; } - + /// /// Sets to true. /// @@ -43,7 +37,7 @@ public interface ITeleportationProperty : ISceneObjectProperty, ILockable /// This method is called every time a is activate. /// void Initialize(); - + /// /// Instantaneously simulate that the object was used. /// diff --git a/Source/Basic-Interaction-Component/Runtime/Properties/IUsableProperty.cs b/Source/Basic-Interaction-Component/Runtime/Properties/IUsableProperty.cs index 701826f26..78acc134b 100644 --- a/Source/Basic-Interaction-Component/Runtime/Properties/IUsableProperty.cs +++ b/Source/Basic-Interaction-Component/Runtime/Properties/IUsableProperty.cs @@ -1,18 +1,12 @@ using System; -using VRBuilder.Core.SceneObjects; -using VRBuilder.Core.Properties; using UnityEngine.Events; +using VRBuilder.Core.Properties; +using VRBuilder.Core.SceneObjects; namespace VRBuilder.BasicInteraction.Properties { public interface IUsableProperty : ISceneObjectProperty, ILockable { - [Obsolete("Use UseStarted instead.")] - event EventHandler UsageStarted; - - [Obsolete("Use UseEnded instead.")] - event EventHandler UsageStopped; - /// /// Called when the object is used. /// @@ -22,12 +16,12 @@ public interface IUsableProperty : ISceneObjectProperty, ILockable /// Called when object use has ended. /// UnityEvent UseEnded { get; } - + /// /// Is object currently used. /// bool IsBeingUsed { get; } - + /// /// Instantaneously simulate that the object was used. /// @@ -37,7 +31,7 @@ public interface IUsableProperty : ISceneObjectProperty, ILockable /// Force this property to a specified use state. /// void ForceSetUsed(bool isUsed); - + } public class UsablePropertyEventArgs : EventArgs diff --git a/Source/Basic-Interaction-Component/Runtime/VRBuilder.BasicInteraction.asmdef b/Source/Basic-Interaction-Component/Runtime/VRBuilder.BasicInteraction.asmdef index 2f0f6dc06..dc1bb5f22 100644 --- a/Source/Basic-Interaction-Component/Runtime/VRBuilder.BasicInteraction.asmdef +++ b/Source/Basic-Interaction-Component/Runtime/VRBuilder.BasicInteraction.asmdef @@ -2,7 +2,7 @@ "name": "VRBuilder.BasicInteraction", "rootNamespace": "", "references": [ - "GUID:c8561f9de838ac04d8feeda695bc572d" + "VRBuilder.Core" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Source/Basic-Interaction-Component/Runtime/Validation/HasGuidValidation.cs b/Source/Basic-Interaction-Component/Runtime/Validation/HasGuidValidation.cs new file mode 100644 index 000000000..1cb9e6c74 --- /dev/null +++ b/Source/Basic-Interaction-Component/Runtime/Validation/HasGuidValidation.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using VRBuilder.Core.SceneObjects; + +namespace VRBuilder.BasicInteraction.Validation +{ + /// + /// Validator that checks if the object has one of the required guids either as + /// its object ID or as a group. + /// + public class HasGuidValidation : Validator, IGuidContainer + { + [SerializeField] + private List guids = new List(); + + /// + public IEnumerable Guids => guids.Select(tag => Guid.Parse(tag)); + + public event EventHandler GuidAdded; + public event EventHandler GuidRemoved; + + /// + public void AddGuid(Guid guid) + { + if (HasGuid(guid) == false) + { + guids.Add(guid.ToString()); + GuidAdded?.Invoke(this, new GuidContainerEventArgs(guid)); + } + } + + /// + public bool HasGuid(Guid guid) + { + return Guids.Contains(guid); + } + + /// + public bool RemoveGuid(Guid guid) + { + bool removed = false; + + if (HasGuid(guid)) + { + removed = guids.Remove(guid.ToString()); + GuidRemoved?.Invoke(this, new GuidContainerEventArgs(guid)); + } + + return removed; + } + + /// + public override bool Validate(GameObject obj) + { + ProcessSceneObject processSceneObject = obj.GetComponent(); + + if (processSceneObject == null) + { + return false; + } + + if (Guids.Count() == 0) + { + return true; + } + + return Guids.Any(guid => processSceneObject.Guid == guid || processSceneObject.HasGuid(guid)); + } + } +} \ No newline at end of file diff --git a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableGameObjectMenuItem.cs.meta b/Source/Basic-Interaction-Component/Runtime/Validation/HasGuidValidation.cs.meta similarity index 83% rename from Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableGameObjectMenuItem.cs.meta rename to Source/Basic-Interaction-Component/Runtime/Validation/HasGuidValidation.cs.meta index dffe4304d..7d1f8b680 100644 --- a/Source/Basic-Conditions-And-Behaviors/Editor/UI/MenuItems/DisableGameObjectMenuItem.cs.meta +++ b/Source/Basic-Interaction-Component/Runtime/Validation/HasGuidValidation.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 919296efb0173054bb387c4d386b0f08 +guid: 3cc20a5b4886caf449ab0a7b3a5a2ef1 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Source/Basic-Interaction-Component/Runtime/Validation/IsObjectWithTagValidation.cs b/Source/Basic-Interaction-Component/Runtime/Validation/IsObjectWithTagValidation.cs index bbfe28370..9fd4e6627 100644 --- a/Source/Basic-Interaction-Component/Runtime/Validation/IsObjectWithTagValidation.cs +++ b/Source/Basic-Interaction-Component/Runtime/Validation/IsObjectWithTagValidation.cs @@ -6,37 +6,37 @@ namespace VRBuilder.BasicInteraction.Validation { - public class IsObjectWithTagValidation : Validator, ITagContainer + public class IsObjectWithTagValidation : Validator, IGuidContainer { [SerializeField] private List tags = new List(); - public IEnumerable Tags => tags.Select(tag => Guid.Parse(tag)); + public IEnumerable Guids => tags.Select(tag => Guid.Parse(tag)); - public event EventHandler TagAdded; - public event EventHandler TagRemoved; + public event EventHandler GuidAdded; + public event EventHandler GuidRemoved; - public void AddTag(Guid tag) + public void AddGuid(Guid tag) { - if(HasTag(tag) == false) + if (HasGuid(tag) == false) { tags.Add(tag.ToString()); - TagAdded?.Invoke(this, new TaggableObjectEventArgs(tag.ToString())); + GuidAdded?.Invoke(this, new GuidContainerEventArgs(tag)); } } - public bool HasTag(Guid tag) + public bool HasGuid(Guid tag) { - return Tags.Contains(tag); + return Guids.Contains(tag); } - public bool RemoveTag(Guid tag) + public bool RemoveGuid(Guid tag) { bool removed = false; - if (HasTag(tag)) + if (HasGuid(tag)) { removed = tags.Remove(tag.ToString()); - TagRemoved?.Invoke(this, new TaggableObjectEventArgs(tag.ToString())); + GuidRemoved?.Invoke(this, new GuidContainerEventArgs(tag)); } return removed; @@ -51,12 +51,12 @@ public override bool Validate(GameObject obj) return false; } - if (Tags.Count() == 0) + if (Guids.Count() == 0) { return true; } - return Tags.Any(tag => processSceneObject.HasTag(tag)); + return Guids.Any(tag => processSceneObject.HasGuid(tag)); } } } \ No newline at end of file diff --git a/Source/Basic-Interaction-Component/Runtime/Validation/IsProcessSceneObjectValidation.cs b/Source/Basic-Interaction-Component/Runtime/Validation/IsProcessSceneObjectValidation.cs index 3f6d36496..2a9ef32c6 100644 --- a/Source/Basic-Interaction-Component/Runtime/Validation/IsProcessSceneObjectValidation.cs +++ b/Source/Basic-Interaction-Component/Runtime/Validation/IsProcessSceneObjectValidation.cs @@ -1,6 +1,7 @@ -using System.Linq; -using VRBuilder.Core.SceneObjects; +using System; +using System.Linq; using UnityEngine; +using VRBuilder.Core.SceneObjects; namespace VRBuilder.BasicInteraction.Validation { @@ -11,7 +12,7 @@ public class IsProcessSceneObjectValidation : Validator { [SerializeField] [Tooltip("All listed process objects are valid to be snapped other will be rejected.")] - private ProcessSceneObject[] acceptedProcessSceneObjects = {}; + private ProcessSceneObject[] acceptedProcessSceneObjects = { }; /// /// Adds a new ProcessSceneObject to the list. @@ -34,7 +35,7 @@ public void RemoveProcessSceneObject(ProcessSceneObject target) acceptedProcessSceneObjects = acceptedProcessSceneObjects.Where((obj => obj != target)).ToArray(); } } - + /// public override bool Validate(GameObject obj) { @@ -44,12 +45,12 @@ public override bool Validate(GameObject obj) { return false; } - + if (acceptedProcessSceneObjects.Length == 0) { return true; } - + return acceptedProcessSceneObjects.Contains(processSceneObject); } } diff --git a/Source/Core/Editor/AssemblyAttributes.cs b/Source/Core/Editor/AssemblyAttributes.cs index eb261863a..b4711fa2a 100644 --- a/Source/Core/Editor/AssemblyAttributes.cs +++ b/Source/Core/Editor/AssemblyAttributes.cs @@ -1,11 +1,9 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.Runtime.CompilerServices; -[assembly: InternalsVisibleTo("VRBuilder.Core.Tests")] -[assembly: InternalsVisibleTo("VRBuilder.Core.Tests.Editmode")] -[assembly: InternalsVisibleTo("VRBuilder.Editor.TestTools")] -[assembly: InternalsVisibleTo("VRBuilder.CreatorPro")] +[assembly: InternalsVisibleTo("VRBuilder.Core.Tests.PlayMode")] +[assembly: InternalsVisibleTo("VRBuilder.Core.Tests.EditMode")] [assembly: InternalsVisibleTo("VRBuilder.Editor.TextToSpeech")] diff --git a/Source/Core/Editor/AssemblyUnloadDetector.cs b/Source/Core/Editor/AssemblyUnloadDetector.cs index 072e1db4b..c0a78705d 100644 --- a/Source/Core/Editor/AssemblyUnloadDetector.cs +++ b/Source/Core/Editor/AssemblyUnloadDetector.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using UnityEditor; diff --git a/Source/Core/Editor/BuilderProjectSettings.cs b/Source/Core/Editor/BuilderProjectSettings.cs index 97e7e8c13..94bfeb5e3 100644 --- a/Source/Core/Editor/BuilderProjectSettings.cs +++ b/Source/Core/Editor/BuilderProjectSettings.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.IO; using VRBuilder.Editor; diff --git a/Source/Core/Editor/Configuration/AllowedMenuItemsSettings.cs b/Source/Core/Editor/Configuration/AllowedMenuItemsSettings.cs index c710129f2..48a2865cd 100644 --- a/Source/Core/Editor/Configuration/AllowedMenuItemsSettings.cs +++ b/Source/Core/Editor/Configuration/AllowedMenuItemsSettings.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; diff --git a/Source/Core/Editor/Configuration/DefaultEditorConfiguration.cs b/Source/Core/Editor/Configuration/DefaultEditorConfiguration.cs index 8cb787450..2e92f4bfb 100644 --- a/Source/Core/Editor/Configuration/DefaultEditorConfiguration.cs +++ b/Source/Core/Editor/Configuration/DefaultEditorConfiguration.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.Collections.ObjectModel; using System.Linq; @@ -29,7 +29,7 @@ public virtual string ProcessStreamingAssetsSubdirectory /// public virtual string AllowedMenuItemsSettingsAssetPath { - get { return "Assets/MindPort/VR Builder/Editor/Config/AllowedMenuItems.json"; } + get { return "Assets/MindPort/VR Builder/Resources/AllowedMenuItems.json"; } } /// @@ -75,11 +75,7 @@ public virtual AllowedMenuItemsSettings AllowedMenuItemsSettings protected DefaultEditorConfiguration() { -#if CREATOR_PRO - Validation = new DefaultValidationHandler(); -#else Validation = new DisabledValidationHandler(); -#endif } } } diff --git a/Source/Core/Editor/Configuration/EditorConfigWrapper.cs b/Source/Core/Editor/Configuration/EditorConfigWrapper.cs index 0f85f78a7..4c04d4df8 100644 --- a/Source/Core/Editor/Configuration/EditorConfigWrapper.cs +++ b/Source/Core/Editor/Configuration/EditorConfigWrapper.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.Collections.ObjectModel; using VRBuilder.Core.Behaviors; diff --git a/Source/Core/Editor/Configuration/EditorConfigurator.cs b/Source/Core/Editor/Configuration/EditorConfigurator.cs index 09fbdecfe..242cd03f4 100644 --- a/Source/Core/Editor/Configuration/EditorConfigurator.cs +++ b/Source/Core/Editor/Configuration/EditorConfigurator.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Linq; diff --git a/Source/Core/Editor/Configuration/IEditorConfiguration.cs b/Source/Core/Editor/Configuration/IEditorConfiguration.cs index be7b1a2c3..4a0853471 100644 --- a/Source/Core/Editor/Configuration/IEditorConfiguration.cs +++ b/Source/Core/Editor/Configuration/IEditorConfiguration.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.Collections.ObjectModel; using VRBuilder.Core.Behaviors; diff --git a/Source/Core/Editor/Configuration/IEditorConfigurationExtension.cs b/Source/Core/Editor/Configuration/IEditorConfigurationExtension.cs index e7fe44a85..107215568 100644 --- a/Source/Core/Editor/Configuration/IEditorConfigurationExtension.cs +++ b/Source/Core/Editor/Configuration/IEditorConfigurationExtension.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; diff --git a/Source/Core/Editor/Configuration/LoggingConfigCreationTrigger.cs b/Source/Core/Editor/Configuration/LoggingConfigCreationTrigger.cs index df0b10e56..49a309868 100644 --- a/Source/Core/Editor/Configuration/LoggingConfigCreationTrigger.cs +++ b/Source/Core/Editor/Configuration/LoggingConfigCreationTrigger.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.IO; using VRBuilder.Core.Utils.Logging; @@ -17,6 +17,26 @@ namespace VRBuilder.Editor.Configuration public class LoggingConfigCreationTrigger { static LoggingConfigCreationTrigger() + { + LifeCycleLoggingConfig instance = null; + // Postpone if editor is busy to avoid errors + if (!EditorApplication.isUpdating) + { + instance = Load(); + } + else + { + EditorApplication.delayCall += () => + { + if (instance == null) + { + instance = Load(); + } + }; + } + } + + private static LifeCycleLoggingConfig Load() { LifeCycleLoggingConfig instance = Resources.Load("LifeCycleLoggingConfig"); if (instance == null) @@ -26,10 +46,12 @@ static LoggingConfigCreationTrigger() { Directory.CreateDirectory("Assets/MindPort/VR Builder/Resources"); } - + AssetDatabase.CreateAsset(instance, "Assets/MindPort/VR Builder/Resources/LifeCycleLoggingConfig.asset"); AssetDatabase.SaveAssets(); } + + return instance; } } } diff --git a/Source/Core/Editor/Configuration/RuntimeConfiguratorEditor.cs b/Source/Core/Editor/Configuration/RuntimeConfiguratorEditor.cs index b3c4429ad..b598fa39d 100644 --- a/Source/Core/Editor/Configuration/RuntimeConfiguratorEditor.cs +++ b/Source/Core/Editor/Configuration/RuntimeConfiguratorEditor.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; @@ -41,9 +41,7 @@ public class RuntimeConfiguratorEditor : UnityEditor.Editor static RuntimeConfiguratorEditor() { -#pragma warning disable 0618 - configurationTypes = ReflectionUtils.GetConcreteImplementationsOf().Except(new[] { typeof(RuntimeConfigWrapper) }).ToList(); -#pragma warning restore 0618 + configurationTypes = ReflectionUtils.GetConcreteImplementationsOf().ToList(); configurationTypes.Sort(((type1, type2) => string.Compare(type1.Name, type2.Name, StringComparison.Ordinal))); configurationTypeNames = configurationTypes.Select(t => t.Name).ToArray(); diff --git a/Source/Core/Editor/TestTools/EditorImguiTester.meta b/Source/Core/Editor/Debug.meta similarity index 77% rename from Source/Core/Editor/TestTools/EditorImguiTester.meta rename to Source/Core/Editor/Debug.meta index 747a6a1d6..fff52cfdb 100644 --- a/Source/Core/Editor/TestTools/EditorImguiTester.meta +++ b/Source/Core/Editor/Debug.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 9733cced41821324f9fe11420c67a902 +guid: ed904c287fa54c143baa895954eb91d8 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Source/Core/Editor/Debug/SceneObjectRegistryV2EditorWindow.cs b/Source/Core/Editor/Debug/SceneObjectRegistryV2EditorWindow.cs new file mode 100644 index 000000000..273e3c858 --- /dev/null +++ b/Source/Core/Editor/Debug/SceneObjectRegistryV2EditorWindow.cs @@ -0,0 +1,105 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; +using VRBuilder.Core.Configuration; +using VRBuilder.Core.SceneObjects; +using VRBuilder.Core.Settings; +using VRBuilder.Editor.UI; + +namespace VRBuilder.Editor.Debugging +{ + public class SceneObjectRegistryV2EditorWindow : EditorWindow + { + private Dictionary foldoutStatus = new Dictionary(); + + private void OnEnable() + { + titleContent = new GUIContent("Scene Object Registry"); + } + + + private void OnGUI() + { + SceneObjectRegistryV2 sceneObjectRegistry = RuntimeConfigurator.Configuration.SceneObjectRegistry as SceneObjectRegistryV2; + + if (sceneObjectRegistry == null) + { + GUILayout.Label("Scene object registry is either incompatible with this debug tool or null."); + return; + } + + if (GUILayout.Button("Rebuild")) + { + sceneObjectRegistry.DebugRebuild(); + } + + if (sceneObjectRegistry == null) + { + return; + } + + if (sceneObjectRegistry.RegisteredGuids.Count() == 0) + { + GUILayout.Label("No Guids registered."); + return; + } + + foreach (Guid guid in sceneObjectRegistry.RegisteredGuids) + { + if (foldoutStatus.ContainsKey(guid) == false) + { + foldoutStatus.Add(guid, false); + } + + IEnumerable objectsInGroup = sceneObjectRegistry.GetObjects(guid); + + // Foldout + EditorGUI.BeginDisabledGroup(objectsInGroup.Count() == 0); + string label = SceneObjectGroups.Instance.GetLabel(guid); + + if (string.IsNullOrEmpty(label)) + { + //RichText on Foldout breaks the Foldout may be use UIToolkit for NonUniqueSceneObjectRegistryEditorWindow in the future + label = SceneObjectGroups.UniqueGuidName; + } + + foldoutStatus[guid] = EditorGUILayout.Foldout(foldoutStatus[guid], $"({objectsInGroup.Count()}) {label} - {guid.ToString()}"); + EditorGUI.EndDisabledGroup(); + + GUILayout.Space(EditorDrawingHelper.VerticalSpacing); + + if (foldoutStatus[guid]) + { + foreach (ISceneObject sceneObject in objectsInGroup) + { + // Check if the object has just been destroyed and throws a missing + // reference exception. Checking for null still throws the exception. + try + { + GameObject gameObject = sceneObject.GameObject; + } + catch (MissingReferenceException) + { + continue; + } + + GUILayout.BeginHorizontal(); + GUILayout.Space(EditorDrawingHelper.IndentationWidth); + + if (GUILayout.Button("Show", GUILayout.ExpandWidth(false))) + { + EditorGUIUtility.PingObject(sceneObject.GameObject); + } + + GUILayout.Label($"{sceneObject.GameObject.name}"); + + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + } + } + } + } + } +} diff --git a/Source/Core/Editor/Debug/SceneObjectRegistryV2EditorWindow.cs.meta b/Source/Core/Editor/Debug/SceneObjectRegistryV2EditorWindow.cs.meta new file mode 100644 index 000000000..237a8dda7 --- /dev/null +++ b/Source/Core/Editor/Debug/SceneObjectRegistryV2EditorWindow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 17f387a2c528ed94f936d21355780d1e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/DefaultEditingStrategy.cs b/Source/Core/Editor/DefaultEditingStrategy.cs index 6a9ad23ff..815d36b7c 100644 --- a/Source/Core/Editor/DefaultEditingStrategy.cs +++ b/Source/Core/Editor/DefaultEditingStrategy.cs @@ -1,18 +1,20 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH +using System; using UnityEditor; using UnityEngine; using VRBuilder.Core; -using VRBuilder.Editor.UI.Windows; using VRBuilder.Editor.Configuration; +using VRBuilder.Editor.UI.Windows; namespace VRBuilder.Editor { /// /// Legacy VR Builder editing strategy. - /// + /// + [Obsolete("This class is not used anymore and will be removed in the next major version.")] internal class DefaultEditingStrategy : IEditingStrategy { private ProcessEditorWindow processWindow; diff --git a/Source/Core/Editor/EditorPrefExtensions.cs b/Source/Core/Editor/EditorPrefExtensions.cs index 1af1f4ad4..c5585943b 100644 --- a/Source/Core/Editor/EditorPrefExtensions.cs +++ b/Source/Core/Editor/EditorPrefExtensions.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using Microsoft.Win32; using System; diff --git a/Source/Core/Editor/EditorReflectionUtils.cs b/Source/Core/Editor/EditorReflectionUtils.cs index 2489a0a3c..01b097be0 100644 --- a/Source/Core/Editor/EditorReflectionUtils.cs +++ b/Source/Core/Editor/EditorReflectionUtils.cs @@ -1,17 +1,17 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Runtime.Serialization; +using UnityEditor.Callbacks; using VRBuilder.Core; using VRBuilder.Core.Attributes; -using VRBuilder.Editor.UI.Drawers; -using UnityEditor.Callbacks; using VRBuilder.Core.EntityOwners; +using VRBuilder.Editor.UI.Drawers; namespace VRBuilder.Editor { @@ -129,6 +129,17 @@ public static IEnumerable GetAllFieldsAndProperties(object value) return result; } + /// + /// Returns all data members of a given object. + /// + public static IEnumerable GetAllDataMembers(object value) + { + return GetAllFieldsAndProperties(value) + .GroupBy(propertyInfo => propertyInfo.Name) + .SelectMany(groupByName => groupByName.GroupBy(propertyInfo => propertyInfo.DeclaringType).Select(groupByDeclaringType => groupByDeclaringType.First())) + .Where(propertyInfo => propertyInfo.GetCustomAttributes().Any()); + } + /// /// Returns all properties and fields of the object that have to be drawn by process drawers. /// @@ -251,10 +262,10 @@ public static IEnumerable GetNestedPropertiesFromData(IDat } IEntityCollectionData entityCollectionData = data as IEntityCollectionData; - if(entityCollectionData != null) + if (entityCollectionData != null) { IEnumerable childDataOwners = entityCollectionData.GetChildren().Where(child => child is IDataOwner).Cast(); - foreach(IDataOwner dataOwner in entityCollectionData.GetChildren()) + foreach (IDataOwner dataOwner in entityCollectionData.GetChildren()) { properties.AddRange(GetNestedPropertiesFromData(dataOwner.Data)); } diff --git a/Source/Core/Editor/EditorUtils.cs b/Source/Core/Editor/EditorUtils.cs index fa58bec24..7a17a98f2 100644 --- a/Source/Core/Editor/EditorUtils.cs +++ b/Source/Core/Editor/EditorUtils.cs @@ -1,17 +1,16 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; -using System.Threading.Tasks; -using JetBrains.Annotations; using UnityEditor; using UnityEditor.Callbacks; using UnityEngine; +using UnityEngine.UIElements; using VRBuilder.Editor.PackageManager; namespace VRBuilder.Editor @@ -20,27 +19,32 @@ namespace VRBuilder.Editor /// Utility helper to ease up working with Unity Editor. /// [InitializeOnLoad] - internal static class EditorUtils + public static class EditorUtils { private const string ignoreEditorImguiTestsDefineSymbol = "BUILDER_IGNORE_EDITOR_IMGUI_TESTS"; + private const string corePackageName = "co.mindport.vrbuilder.core"; private static string coreFolder; + private static bool isUpmPackage = true; private static MethodInfo repaintImmediately = typeof(EditorWindow).GetMethod("RepaintImmediately", BindingFlags.Instance | BindingFlags.NonPublic, null, new Type[] { }, new ParameterModifier[] { }); + /// + /// True if VR Builder is a Package Manager package. + /// + public static bool IsUpmPackage => isUpmPackage; + static EditorUtils() { AssemblyReloadEvents.afterAssemblyReload += ResolveCoreFolder; EditorApplication.playModeStateChanged += ResolveCoreFolder; } - [PublicAPI] private static void EnableEditorImguiTests() { SetImguiTestsState(true); } - [PublicAPI] private static void DisableImguiTests() { SetImguiTestsState(false); @@ -98,7 +102,7 @@ internal static void ResetKeyboardElementFocus() /// /// Gets the root folder of VR Builder. /// - internal static string GetCoreFolder() + public static string GetCoreFolder() { if (coreFolder == null) { @@ -113,14 +117,7 @@ internal static string GetCoreFolder() /// internal static string GetCoreVersion() { - string versionFilePath = Path.Combine(GetCoreFolder(), "version.txt"); - string version = ""; - - if (File.Exists(versionFilePath)) - { - version = File.ReadAllText(versionFilePath); - } - + string version = PackageOperationsManager.GetInstalledPackageVersion(corePackageName); return string.IsNullOrEmpty(version) ? "unknown" : version; } @@ -143,6 +140,36 @@ internal static IEnumerable GetAllScriptableObjects() where T : Scriptable return guids.Select(AssetDatabase.GUIDToAssetPath).Select(AssetDatabase.LoadAssetAtPath); } + + /// + /// Make sure that all necessary VisualTreeAssets are set in the Inspector. + /// + /// Name of the editor class + /// List of all assets + internal static void CheckVisualTreeAssets(string source, List asset) + { + if (asset == null) + { + return; + } + foreach (VisualTreeAsset treeAsset in asset) + { + CheckVisualTreeAsset(source, treeAsset); + } + } + + /// + /// Make sure that the VisualTreeAsset is set in the Inspector. + /// + /// Name of the editor class + internal static void CheckVisualTreeAsset(string source, VisualTreeAsset asset) + { + if (asset == null) + { + throw new ArgumentNullException($"A VisualTreeAsset in {source} not assigned in the Inspector."); + } + } + private static void ResolveCoreFolder(PlayModeStateChange state) { ResolveCoreFolder(); @@ -151,8 +178,27 @@ private static void ResolveCoreFolder(PlayModeStateChange state) [DidReloadScripts] private static void ResolveCoreFolder() { - string projectFolder = Application.dataPath; - string[] roots = Directory.GetFiles(projectFolder, $"{nameof(EditorUtils)}.cs", SearchOption.AllDirectories); + string[] roots = new string[0]; + string projectFolder = ""; + + // Check Packages folder + try + { + projectFolder = Application.dataPath.Replace("/Assets", ""); + string packagePath = $"/Packages/{corePackageName}"; + roots = Directory.GetFiles(projectFolder + packagePath, "package.json", SearchOption.AllDirectories); + } + catch (DirectoryNotFoundException) + { + isUpmPackage = false; + } + + if (roots.Length == 0) + { + // Check Assets folder + projectFolder = Application.dataPath; + roots = Directory.GetFiles(projectFolder, "package.json", SearchOption.AllDirectories); + } if (roots.Length == 0) { @@ -161,7 +207,13 @@ private static void ResolveCoreFolder() coreFolder = Path.GetDirectoryName(roots.First()); - coreFolder = coreFolder.Substring(0, coreFolder.LastIndexOf(Path.DirectorySeparatorChar)); + coreFolder = coreFolder.Substring(projectFolder.Length); + coreFolder = coreFolder.Substring(1, coreFolder.Length - 1); + + if (IsUpmPackage == false) + { + coreFolder = $"Assets\\{coreFolder}"; + } // Replace backslashes with forward slashes. coreFolder = coreFolder.Replace('/', Path.AltDirectorySeparatorChar); diff --git a/Source/Core/Editor/GlobalEditorHandler.cs b/Source/Core/Editor/GlobalEditorHandler.cs index 974ae4acd..1c00ada21 100644 --- a/Source/Core/Editor/GlobalEditorHandler.cs +++ b/Source/Core/Editor/GlobalEditorHandler.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using UnityEditor; using UnityEngine; diff --git a/Source/Core/Editor/GraphViewEditingStrategy.cs b/Source/Core/Editor/GraphViewEditingStrategy.cs index af2a5b343..dddcf7565 100644 --- a/Source/Core/Editor/GraphViewEditingStrategy.cs +++ b/Source/Core/Editor/GraphViewEditingStrategy.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using UnityEditor; using UnityEngine; diff --git a/Source/Core/Editor/IEditingStrategy.cs b/Source/Core/Editor/IEditingStrategy.cs index afae6fceb..ab40ef414 100644 --- a/Source/Core/Editor/IEditingStrategy.cs +++ b/Source/Core/Editor/IEditingStrategy.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using VRBuilder.Core; using VRBuilder.Editor.UI.Windows; diff --git a/Source/Core/Editor/Input/InputEditorUtils.cs b/Source/Core/Editor/Input/InputEditorUtils.cs index 3dc58dbb1..a673a77a1 100644 --- a/Source/Core/Editor/Input/InputEditorUtils.cs +++ b/Source/Core/Editor/Input/InputEditorUtils.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using VRBuilder.Core.Configuration; using UnityEditor; diff --git a/Source/Core/Editor/InputSystemChecker.cs b/Source/Core/Editor/InputSystemChecker.cs index ac904d334..814379049 100644 --- a/Source/Core/Editor/InputSystemChecker.cs +++ b/Source/Core/Editor/InputSystemChecker.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using UnityEditor; diff --git a/Source/Core/Editor/MetadataWrapper.cs b/Source/Core/Editor/MetadataWrapper.cs index f5df8a319..4c276505f 100644 --- a/Source/Core/Editor/MetadataWrapper.cs +++ b/Source/Core/Editor/MetadataWrapper.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; diff --git a/Source/Core/Editor/PackageExporter.cs b/Source/Core/Editor/PackageExporter.cs index 12d0d5194..3060d7d56 100644 --- a/Source/Core/Editor/PackageExporter.cs +++ b/Source/Core/Editor/PackageExporter.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.IO; diff --git a/Source/Core/Editor/PlatformCompatibilityChecker.cs b/Source/Core/Editor/PlatformCompatibilityChecker.cs index 78eac193c..132aa6fcf 100644 --- a/Source/Core/Editor/PlatformCompatibilityChecker.cs +++ b/Source/Core/Editor/PlatformCompatibilityChecker.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH #if UNITY_ANDROID using System.Collections.Generic; diff --git a/Source/Core/Editor/ProcessAssets/ProcessAssetManager.cs b/Source/Core/Editor/ProcessAssets/ProcessAssetManager.cs index 7db9cf4f0..0d898cad3 100644 --- a/Source/Core/Editor/ProcessAssets/ProcessAssetManager.cs +++ b/Source/Core/Editor/ProcessAssets/ProcessAssetManager.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; diff --git a/Source/Core/Editor/ProcessAssets/ProcessAssetPostprocessor.cs b/Source/Core/Editor/ProcessAssets/ProcessAssetPostprocessor.cs index e75fd86c8..8f877c9fb 100644 --- a/Source/Core/Editor/ProcessAssets/ProcessAssetPostprocessor.cs +++ b/Source/Core/Editor/ProcessAssets/ProcessAssetPostprocessor.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Linq; diff --git a/Source/Core/Editor/ProcessAssets/ProcessAssetPostprocessorEventArgs.cs b/Source/Core/Editor/ProcessAssets/ProcessAssetPostprocessorEventArgs.cs index 811dd9202..354189fa0 100644 --- a/Source/Core/Editor/ProcessAssets/ProcessAssetPostprocessorEventArgs.cs +++ b/Source/Core/Editor/ProcessAssets/ProcessAssetPostprocessorEventArgs.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; diff --git a/Source/Core/Editor/ProcessAssets/ProcessAssetProcessor.cs b/Source/Core/Editor/ProcessAssets/ProcessAssetProcessor.cs index fcece749b..ff34ba0d6 100644 --- a/Source/Core/Editor/ProcessAssets/ProcessAssetProcessor.cs +++ b/Source/Core/Editor/ProcessAssets/ProcessAssetProcessor.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH namespace VRBuilder.Editor { diff --git a/Source/Core/Editor/ProcessAssets/ProcessAssetUtils.cs b/Source/Core/Editor/ProcessAssets/ProcessAssetUtils.cs index e73bd0d1f..dde1267cf 100644 --- a/Source/Core/Editor/ProcessAssets/ProcessAssetUtils.cs +++ b/Source/Core/Editor/ProcessAssets/ProcessAssetUtils.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.Collections.Generic; using System.IO; diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/Windows.meta b/Source/Core/Editor/ProcessUpgradeTool.meta similarity index 77% rename from Source/Core/Editor/TestTools/EditorImguiTester/Windows.meta rename to Source/Core/Editor/ProcessUpgradeTool.meta index b4b3d0cda..f69f8c35b 100644 --- a/Source/Core/Editor/TestTools/EditorImguiTester/Windows.meta +++ b/Source/Core/Editor/ProcessUpgradeTool.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 716cbe24086a91f47aacbfc52beffeaa +guid: 3b1ed7937a8cf214fa7c49e3d9a2006c folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Tests/Basic-Conditions-And-Behaviors/Builders.meta b/Source/Core/Editor/ProcessUpgradeTool/Converters.meta similarity index 77% rename from Tests/Basic-Conditions-And-Behaviors/Builders.meta rename to Source/Core/Editor/ProcessUpgradeTool/Converters.meta index 50800ff14..3159db9e4 100644 --- a/Tests/Basic-Conditions-And-Behaviors/Builders.meta +++ b/Source/Core/Editor/ProcessUpgradeTool/Converters.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ce7ecec27d58f6a4caacc6649fda934e +guid: 895c99f10b00b404ebcf15130bc1dc4b folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Converters/Converter.cs b/Source/Core/Editor/ProcessUpgradeTool/Converters/Converter.cs new file mode 100644 index 000000000..81847d721 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Converters/Converter.cs @@ -0,0 +1,43 @@ +using System; +using UnityEngine; +using VRBuilder.Core; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Generic implementation of . + /// + public abstract class Converter : IConverter where TIn : class where TOut : class + { + /// + public Type ConvertedType => typeof(TIn); + + /// + /// Returns an object which can replace the provided object. + /// + protected abstract TOut PerformConversion(TIn oldObject); + + /// + public object Convert(object oldObject) + { + TOut newObject = PerformConversion((TIn)oldObject); + Debug.Log($"Replaced obsolete {typeof(TIn).Name} '{GetObjectName(oldObject)}' with {typeof(TOut).Name} '{GetObjectName(newObject)}'."); + return newObject; + } + + private string GetObjectName(object obj) + { + if (obj is INamedData namedData) + { + return namedData.Name; + } + + if (obj is IDataOwner dataOwner && dataOwner.Data is INamedData data) + { + return data.Name; + } + + return obj.ToString(); + } + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Converters/Converter.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Converters/Converter.cs.meta new file mode 100644 index 000000000..4636d1716 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Converters/Converter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6dca1d6d83ac05c41897e780d21c37e2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Converters/DisableGameObjectBehaviorConverter.cs b/Source/Core/Editor/ProcessUpgradeTool/Converters/DisableGameObjectBehaviorConverter.cs new file mode 100644 index 000000000..9ddc3e228 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Converters/DisableGameObjectBehaviorConverter.cs @@ -0,0 +1,38 @@ +using System.Linq; +using VRBuilder.Core.Behaviors; +using VRBuilder.Core.SceneObjects; +using VRBuilder.Unity; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Replaces an obsolete with a + /// with the same configuration. + /// +#pragma warning disable CS0618 // Type or member is obsolete + public class DisableGameObjectBehaviorConverter : Converter + { + /// + protected override SetObjectsEnabledBehavior PerformConversion(DisableGameObjectBehavior oldBehavior) +#pragma warning restore CS0618 // Type or member is obsolete + { + SetObjectsEnabledBehavior newBehavior = new SetObjectsEnabledBehavior(); + newBehavior.Data.SetEnabled = false; + newBehavior.Data.RevertOnDeactivation = false; + + if (string.IsNullOrEmpty(oldBehavior.Data.Target.UniqueName) == false) + { +#pragma warning disable CS0618 // Type or member is obsolete + ProcessSceneObject referencedObject = SceneUtils.GetActiveAndInactiveComponents().FirstOrDefault(sceneObject => sceneObject.UniqueName == oldBehavior.Data.Target.UniqueName); +#pragma warning restore CS0618 // Type or member is obsolete + + if (referencedObject != null) + { + newBehavior.Data.TargetObjects = new MultipleSceneObjectReference(referencedObject.Guid); + } + } + + return newBehavior; + } + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Converters/DisableGameObjectBehaviorConverter.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Converters/DisableGameObjectBehaviorConverter.cs.meta new file mode 100644 index 000000000..8d26a3832 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Converters/DisableGameObjectBehaviorConverter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 03185594103211c4299bd6f7da70996c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Converters/EnableGameObjectBehaviorConverter.cs b/Source/Core/Editor/ProcessUpgradeTool/Converters/EnableGameObjectBehaviorConverter.cs new file mode 100644 index 000000000..4283a6549 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Converters/EnableGameObjectBehaviorConverter.cs @@ -0,0 +1,38 @@ +using System.Linq; +using VRBuilder.Core.Behaviors; +using VRBuilder.Core.SceneObjects; +using VRBuilder.Unity; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Replaces an obsolete with a + /// with the same configuration. + /// +#pragma warning disable CS0618 // Type or member is obsolete + public class EnableGameObjectBehaviorConverter : Converter + { + /// + protected override SetObjectsEnabledBehavior PerformConversion(EnableGameObjectBehavior oldBehavior) +#pragma warning restore CS0618 // Type or member is obsolete + { + SetObjectsEnabledBehavior newBehavior = new SetObjectsEnabledBehavior(); + newBehavior.Data.SetEnabled = true; + newBehavior.Data.RevertOnDeactivation = oldBehavior.Data.DisableOnDeactivating; + + if (string.IsNullOrEmpty(oldBehavior.Data.Target.UniqueName) == false) + { +#pragma warning disable CS0618 // Type or member is obsolete + ProcessSceneObject referencedObject = SceneUtils.GetActiveAndInactiveComponents().FirstOrDefault(sceneObject => sceneObject.UniqueName == oldBehavior.Data.Target.UniqueName); +#pragma warning restore CS0618 // Type or member is obsolete + + if (referencedObject != null) + { + newBehavior.Data.TargetObjects = new MultipleSceneObjectReference(referencedObject.Guid); + } + } + + return newBehavior; + } + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Converters/EnableGameObjectBehaviorConverter.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Converters/EnableGameObjectBehaviorConverter.cs.meta new file mode 100644 index 000000000..6be2db4a3 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Converters/EnableGameObjectBehaviorConverter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c81fd468d6281244daae0637c14fe1c8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Converters/IConverter.cs b/Source/Core/Editor/ProcessUpgradeTool/Converters/IConverter.cs new file mode 100644 index 000000000..b9d8d8480 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Converters/IConverter.cs @@ -0,0 +1,20 @@ +using System; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Replaces an object with another up to date object with comparable functionality. + /// + public interface IConverter + { + /// + /// Type supported by this converter. + /// + Type ConvertedType { get; } + + /// + /// Returns an object which is an up to date version of the provided object. + /// + object Convert(object oldEntity); + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Converters/IConverter.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Converters/IConverter.cs.meta new file mode 100644 index 000000000..03fb1cbeb --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Converters/IConverter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3efac33faa2d7b4428d7bb8d779d4e6a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Converters/SetComponentEnabledByTagBehaviorConverter.cs b/Source/Core/Editor/ProcessUpgradeTool/Converters/SetComponentEnabledByTagBehaviorConverter.cs new file mode 100644 index 000000000..fd0c905da --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Converters/SetComponentEnabledByTagBehaviorConverter.cs @@ -0,0 +1,37 @@ +using VRBuilder.Core.Behaviors; +using VRBuilder.Core.SceneObjects; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Replaces an obsolete with a + /// with the same configuration. + /// +#pragma warning disable CS0618 // Type or member is obsolete + public class SetComponentEnabledByTagBehaviorConverter : Converter + { + /// + protected override SetComponentEnabledBehavior PerformConversion(SetComponentEnabledByTagBehavior oldBehavior) +#pragma warning restore CS0618 // Type or member is obsolete + { + SetComponentEnabledBehavior newBehavior = new SetComponentEnabledBehavior(); + + if (oldBehavior.Data.TargetObjects.HasValue()) + { + newBehavior.Data.TargetObjects = oldBehavior.Data.TargetObjects; + } + else + { +#pragma warning disable CS0618 // Type or member is obsolete + newBehavior.Data.TargetObjects = new MultipleSceneObjectReference(oldBehavior.Data.TargetTag.Guid); +#pragma warning restore CS0618 // Type or member is obsolete + } + + newBehavior.Data.SetEnabled = oldBehavior.Data.SetEnabled; + newBehavior.Data.RevertOnDeactivation = oldBehavior.Data.RevertOnDeactivation; + newBehavior.Data.ComponentType = oldBehavior.Data.ComponentType; + + return newBehavior; + } + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Converters/SetComponentEnabledByTagBehaviorConverter.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Converters/SetComponentEnabledByTagBehaviorConverter.cs.meta new file mode 100644 index 000000000..3f03bf0c4 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Converters/SetComponentEnabledByTagBehaviorConverter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1d0ddcc45e4eaa643a84ac876e855518 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Converters/SetObjectsWithTagEnabledBehaviorConverter.cs b/Source/Core/Editor/ProcessUpgradeTool/Converters/SetObjectsWithTagEnabledBehaviorConverter.cs new file mode 100644 index 000000000..3e6e8b92e --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Converters/SetObjectsWithTagEnabledBehaviorConverter.cs @@ -0,0 +1,25 @@ +using VRBuilder.Core.Behaviors; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Replaces an obsolete with a + /// with the same configuration. + /// +#pragma warning disable CS0618 // Type or member is obsolete + public class SetObjectsWithTagEnabledBehaviorConverter : Converter + { + /// + protected override SetObjectsEnabledBehavior PerformConversion(SetObjectsWithTagEnabledBehavior oldBehavior) + { +#pragma warning restore CS0618 // Type or member is obsolete + + SetObjectsEnabledBehavior newBehavior = new SetObjectsEnabledBehavior(); + newBehavior.Data.SetEnabled = oldBehavior.Data.SetEnabled; + newBehavior.Data.TargetObjects = oldBehavior.Data.TargetObjects; + newBehavior.Data.RevertOnDeactivation = oldBehavior.Data.RevertOnDeactivation; + + return newBehavior; + } + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Converters/SetObjectsWithTagEnabledBehaviorConverter.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Converters/SetObjectsWithTagEnabledBehaviorConverter.cs.meta new file mode 100644 index 000000000..b57e3efe0 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Converters/SetObjectsWithTagEnabledBehaviorConverter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0cf6d2163f2fe9d4a9ea07fdfa576e47 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/ProcessUpgradeTool.cs b/Source/Core/Editor/ProcessUpgradeTool/ProcessUpgradeTool.cs new file mode 100644 index 000000000..6c35316bc --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/ProcessUpgradeTool.cs @@ -0,0 +1,174 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using UnityEditor; +using UnityEngine; +using UnityEngine.SceneManagement; +using VRBuilder.Core; +using VRBuilder.Core.Configuration; +using VRBuilder.Core.EntityOwners; +using VRBuilder.Core.SceneObjects; +using VRBuilder.Core.Utils; +using VRBuilder.Unity; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Tool for upgrading an old process loaded in a scene to be compatible with the latest version of VR Builder. + /// + public static class ProcessUpgradeTool + { + private static IEnumerable updaters; + private static IEnumerable converters; + + /// + /// Updaters available to this tool. + /// + public static IEnumerable Updaters + { + get + { + if (updaters == null) + { + updaters = new List(ReflectionUtils.GetConcreteImplementationsOf() + .Select(ReflectionUtils.CreateInstanceOfType) + .Cast()); + } + + return updaters; + } + } + + /// + /// Converters available to this tool. + /// + public static IEnumerable Converters + { + get + { + if (converters == null) + { + converters = new List(ReflectionUtils.GetConcreteImplementationsOf() + .Select(ReflectionUtils.CreateInstanceOfType) + .Cast()); + } + + return converters; + } + } + + [MenuItem("Tools/VR Builder/Developer/Update Process in Scene", false, 70)] + private static void UpdateProcessMenuEntry() + { + if (RuntimeConfigurator.Exists == false) + { + Debug.LogError("This is not a VR Builder scene"); + return; + } + + IProcess process = GlobalEditorHandler.GetCurrentProcess(); + + if (process == null) + { + Debug.LogError("No active process found."); + return; + } + + if (EditorUtility.DisplayDialog("Process Upgrade Tool", $"Updating the current process to the newest version of VR Builder.\n" + + $"The correct scene needs to be opened for the upgrade to work properly.\n\n" + + $"Process: {process.Data.Name}\n" + + $"Scene: {SceneManager.GetActiveScene().name}\n\n" + + $"Ensure you have backed up your process file before proceeding!\n" + + $"Continue?", "Ok", "Cancel") == false) + { + return; + } + + IEnumerable processSceneObjects = SceneUtils.GetActiveAndInactiveComponents(); + foreach (ProcessSceneObject sceneObject in processSceneObjects) + { + sceneObject.ResetUniqueId(); + } + + UpdateDataOwnerRecursively(process); + + ProcessAssetManager.Save(process); + } + + /// + /// Updates the provided data owner and all of its child data owners, if a suitable updater exists. + /// + public static void UpdateDataOwnerRecursively(IDataOwner dataOwner) + { + IEnumerable properties = EditorReflectionUtils.GetAllDataMembers(dataOwner); + + foreach (MemberInfo property in properties) + { + IUpdater updater = GetUpdaterForType(ReflectionUtils.GetDeclaredTypeOfPropertyOrField(property)); + + if (updater != null) + { + updater.Update(property, dataOwner); + } + } + + IEntityCollectionData entityCollectionData = dataOwner.Data as IEntityCollectionData; + if (entityCollectionData != null) + { + IEnumerable childDataOwners = entityCollectionData.GetChildren().Where(child => child is IDataOwner).Cast(); + foreach (IDataOwner childDataOwner in entityCollectionData.GetChildren()) + { + UpdateDataOwnerRecursively(childDataOwner); + } + } + } + + /// + /// Returns a suitable updater for the provided type, or null if none is found. + /// + public static IUpdater GetUpdaterForType(Type type) + { + Type currentType = type; + // Get updater for type, checking from the most concrete type definition to a most abstract one. + while (currentType.IsInterface == false && currentType != typeof(object)) + { + IUpdater concreteTypeUpdater = GetUpdater(currentType); + if (concreteTypeUpdater != null) + { + return concreteTypeUpdater; + } + + currentType = currentType.BaseType; + } + + IUpdater interfaceUpdater = null; + if (type.IsInterface) + { + interfaceUpdater = GetUpdater(type); + } + + if (interfaceUpdater == null) + { + interfaceUpdater = GetInheritedInterfaceUpdater(type); + } + + if (interfaceUpdater != null) + { + return interfaceUpdater; + } + + return null; + } + + private static IUpdater GetUpdater(Type type) + { + return Updaters.FirstOrDefault(updater => updater.UpdatedType == type); + } + + private static IUpdater GetInheritedInterfaceUpdater(Type type) + { + return type.GetInterfaces().Select(GetUpdater).FirstOrDefault(t => t != null); + } + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/ProcessUpgradeTool.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/ProcessUpgradeTool.cs.meta new file mode 100644 index 000000000..c67008989 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/ProcessUpgradeTool.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f5519ca4800c6ae4489ae9a96c3910e8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters.meta b/Source/Core/Editor/ProcessUpgradeTool/Updaters.meta new file mode 100644 index 000000000..4e6557576 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9a0bf48f902261f4485f3020d6af23b4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/BehaviorListUpdater.cs b/Source/Core/Editor/ProcessUpgradeTool/Updaters/BehaviorListUpdater.cs new file mode 100644 index 000000000..9842b4b27 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/BehaviorListUpdater.cs @@ -0,0 +1,11 @@ +using VRBuilder.Core.Behaviors; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Concrete implementation of . + /// + public class BehaviorListUpdater : ListUpdater + { + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/BehaviorListUpdater.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Updaters/BehaviorListUpdater.cs.meta new file mode 100644 index 000000000..b4f0c3798 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/BehaviorListUpdater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f98c94e54527fd64ea88317065854b00 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/ConditionListUpdater.cs b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ConditionListUpdater.cs new file mode 100644 index 000000000..6be04947f --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ConditionListUpdater.cs @@ -0,0 +1,11 @@ +using VRBuilder.Core.Conditions; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Concrete implementation of . + /// + public class ConditionListUpdater : ListUpdater + { + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/ConditionListUpdater.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ConditionListUpdater.cs.meta new file mode 100644 index 000000000..bcc87c3ec --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ConditionListUpdater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 68c524a8c640b1e43bc5db9dd94778e8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/DataUpdater.cs b/Source/Core/Editor/ProcessUpgradeTool/Updaters/DataUpdater.cs new file mode 100644 index 000000000..2da2e3a62 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/DataUpdater.cs @@ -0,0 +1,11 @@ +using VRBuilder.Core; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Concrete implementation of . + /// + public class DataUpdater : NestedUpdater + { + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/DataUpdater.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Updaters/DataUpdater.cs.meta new file mode 100644 index 000000000..60053e801 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/DataUpdater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 100edbb6777ec074687e1047ea7ac874 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/IUpdater.cs b/Source/Core/Editor/ProcessUpgradeTool/Updaters/IUpdater.cs new file mode 100644 index 000000000..6d8b4ec3b --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/IUpdater.cs @@ -0,0 +1,21 @@ +using System; +using System.Reflection; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Updates the value in a field or property according to a newer standard. + /// + public interface IUpdater + { + /// + /// Base type compatible with this updater. + /// + Type UpdatedType { get; } + + /// + /// Updates the provided field or property. + /// + void Update(MemberInfo memberInfo, object owner); + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/IUpdater.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Updaters/IUpdater.cs.meta new file mode 100644 index 000000000..c16bbbcf4 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/IUpdater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7beb685790dcb024b8701be80f1e83be +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/ListUpdater.cs b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ListUpdater.cs new file mode 100644 index 000000000..a8c0ff07c --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ListUpdater.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using VRBuilder.Core.Utils; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Iterates through elements of a and replaces them with an up to date + /// version if a suitable converter is found. + /// + public abstract class ListUpdater : IUpdater + { + /// + public Type UpdatedType => typeof(IList); + + /// + public void Update(MemberInfo memberInfo, object owner) + { + IList list = ReflectionUtils.GetValueFromPropertyOrField(owner, memberInfo) as IList; + + for (int i = 0; i < list.Count; i++) + { + IConverter converter = ProcessUpgradeTool.Converters.FirstOrDefault(converter => converter.ConvertedType == list[i].GetType()); + + if (converter != null) + { + list[i] = (T)converter.Convert(list[i]); + } + } + } + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/ListUpdater.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ListUpdater.cs.meta new file mode 100644 index 000000000..68429bec0 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ListUpdater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7efb04e0608fbc3498ace718454ad227 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/LockablePropertyReferenceUpdater.cs b/Source/Core/Editor/ProcessUpgradeTool/Updaters/LockablePropertyReferenceUpdater.cs new file mode 100644 index 000000000..a222ce1a3 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/LockablePropertyReferenceUpdater.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using VRBuilder.Core.Behaviors; +using VRBuilder.Core.Utils; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Iterates through a collection of s and updates them if a suitable updater exists. + /// + public class LockablePropertyReferenceUpdater : Updater> + { + /// + public override void Update(MemberInfo memberInfo, object owner) + { + IEnumerable lockableProperties = ReflectionUtils.GetValueFromPropertyOrField(owner, memberInfo) as IEnumerable; + + foreach (LockablePropertyReference lockablePropertyReference in lockableProperties) + { + IEnumerable properties = EditorReflectionUtils.GetAllDataMembers(lockablePropertyReference); + + foreach (MemberInfo propertyMemberInfo in properties) + { + Type type = ReflectionUtils.GetDeclaredTypeOfPropertyOrField(propertyMemberInfo); + IUpdater updater = ProcessUpgradeTool.GetUpdaterForType(type); + + if (updater != null) + { + updater.Update(propertyMemberInfo, lockablePropertyReference); + } + } + } + } + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/LockablePropertyReferenceUpdater.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Updaters/LockablePropertyReferenceUpdater.cs.meta new file mode 100644 index 000000000..d2891dac3 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/LockablePropertyReferenceUpdater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3f8b51b0b2788e34bab12f9576ca1ec7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/NestedUpdater.cs b/Source/Core/Editor/ProcessUpgradeTool/Updaters/NestedUpdater.cs new file mode 100644 index 000000000..8969cb890 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/NestedUpdater.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using VRBuilder.Core.Utils; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Generic that iterates through the fields and properties of the provided object and + /// tries to update them, provided it finds a suitable updater. + /// + public abstract class NestedUpdater : Updater + { + /// + public override void Update(MemberInfo memberInfo, object owner) + { + object updatedObject = ReflectionUtils.GetValueFromPropertyOrField(owner, memberInfo); + IEnumerable properties = EditorReflectionUtils.GetAllDataMembers(updatedObject); + + foreach (MemberInfo propertyMemberInfo in properties) + { + Type type = ReflectionUtils.GetDeclaredTypeOfPropertyOrField(propertyMemberInfo); + IUpdater updater = ProcessUpgradeTool.GetUpdaterForType(type); + + if (updater != null) + { + updater.Update(propertyMemberInfo, updatedObject); + } + } + + if (memberInfo is PropertyInfo propertyInfo && propertyInfo.GetSetMethod() != null) + { + ReflectionUtils.SetValueToPropertyOrField(owner, memberInfo, updatedObject); + } + } + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/NestedUpdater.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Updaters/NestedUpdater.cs.meta new file mode 100644 index 000000000..6e5f60ed3 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/NestedUpdater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 39ed10c2a73942a42bf7895cc2b827fc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessSceneReferencePropertyUpdater.cs b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessSceneReferencePropertyUpdater.cs new file mode 100644 index 000000000..ba2c5f910 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessSceneReferencePropertyUpdater.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using VRBuilder.Core.SceneObjects; +using VRBuilder.Unity; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Assigns a value to a property from an obsolete + /// or . + /// +#pragma warning disable CS0618 // Type or member is obsolete + public class ProcessSceneReferencePropertyUpdater : PropertyUpdater + { + /// + protected override bool PerformUpgrade(ref ProcessSceneReferenceBase newProperty, ref object oldProperty) + { + if (oldProperty is UniqueNameReference uniqueNameReference) + { + return UpgradeUniqueReference(ref newProperty, ref uniqueNameReference); + } + else if (oldProperty is SceneObjectTagBase sceneObjectTag) + { + return UpgradeSceneObjectTag(ref newProperty, ref sceneObjectTag); + } + + return false; + } + + private bool UpgradeSceneObjectTag(ref ProcessSceneReferenceBase newProperty, ref SceneObjectTagBase sceneObjectTag) + { + newProperty.ResetGuids(new List { sceneObjectTag.Guid }); + return true; + } + + private bool UpgradeUniqueReference(ref ProcessSceneReferenceBase newProperty, ref UniqueNameReference oldProperty) + { + if (string.IsNullOrEmpty(oldProperty.UniqueName)) + { + return true; + } + + // Attempt to find an object with the given unique name in the scene. + string uniqueName = oldProperty.UniqueName; + ProcessSceneObject referencedObject = SceneUtils.GetActiveAndInactiveComponents().FirstOrDefault(sceneObject => sceneObject.UniqueName == uniqueName); +#pragma warning restore CS0618 // Type or member is obsolete + + if (referencedObject == null) + { + return false; + } + + newProperty.ResetGuids(new List() { referencedObject.Guid }); + return true; + } + + /// + protected override bool ShouldBeUpdated(ProcessSceneReferenceBase property) + { + return property == null || property.IsEmpty(); + } + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessSceneReferencePropertyUpdater.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessSceneReferencePropertyUpdater.cs.meta new file mode 100644 index 000000000..fe9d37d2b --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessSceneReferencePropertyUpdater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 432e101d21072ff49b3edb30a402afee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableBoolUpdater.cs b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableBoolUpdater.cs new file mode 100644 index 000000000..04534898d --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableBoolUpdater.cs @@ -0,0 +1,11 @@ +using VRBuilder.Core.ProcessUtils; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Concrete implementation of . + /// + public class ProcessVariableBoolUpdater : NestedUpdater> + { + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableBoolUpdater.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableBoolUpdater.cs.meta new file mode 100644 index 000000000..683fca3ea --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableBoolUpdater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 849ad6cab04779542a2f64ee039c2037 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableFloatUpdater.cs b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableFloatUpdater.cs new file mode 100644 index 000000000..9f0316866 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableFloatUpdater.cs @@ -0,0 +1,11 @@ +using VRBuilder.Core.ProcessUtils; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Concrete implementation of . + /// + public class ProcessVariableFloatUpdater : NestedUpdater> + { + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableFloatUpdater.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableFloatUpdater.cs.meta new file mode 100644 index 000000000..d58eedce0 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableFloatUpdater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 691c6529dc8d70043a0c508b4eb240da +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableStringUpdater.cs b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableStringUpdater.cs new file mode 100644 index 000000000..881e40a6e --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableStringUpdater.cs @@ -0,0 +1,11 @@ +using VRBuilder.Core.ProcessUtils; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Concrete implementation of . + /// + public class ProcessVariableStringUpdater : NestedUpdater> + { + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableStringUpdater.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableStringUpdater.cs.meta new file mode 100644 index 000000000..e509d3895 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/ProcessVariableStringUpdater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 11618b27184bdb24aab72381bde88cdf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/PropertyUpdater.cs b/Source/Core/Editor/ProcessUpgradeTool/Updaters/PropertyUpdater.cs new file mode 100644 index 000000000..9c277f3d5 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/PropertyUpdater.cs @@ -0,0 +1,86 @@ +using System; +using System.Linq; +using System.Reflection; +using UnityEngine; +using VRBuilder.Core; +using VRBuilder.Core.Attributes; +using VRBuilder.Core.Utils; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Generic implementation of specific for properties that supersede obsolete properties of a different type. + /// + /// Type of the property whose value has to be updated. + /// Type of the obsolete property which should be read to get the value. + public abstract class PropertyUpdater : IUpdater + { + /// + public Type UpdatedType => typeof(TNew); + + /// + /// True if it is necessary to update the provided property. + /// + protected abstract bool ShouldBeUpdated(TNew property); + + /// + /// Reads the value from the old property and assigns it to the new property. + /// + protected abstract bool PerformUpgrade(ref TNew newProperty, ref TOld oldProperty); + + /// + public void Update(MemberInfo memberInfo, object owner) + { + TNew propertyValue = (TNew)ReflectionUtils.GetValueFromPropertyOrField(owner, memberInfo); + + if (ShouldBeUpdated(propertyValue) == false) + { + string ownerName = owner is INamedData ? ((INamedData)owner).Name : owner.ToString(); + Debug.Log($"Skipped {memberInfo.Name} in {ownerName}: does not need updating."); + return; + } + + if (AttemptToUpdateProperty(memberInfo, owner)) + { + string ownerName = owner is INamedData ? ((INamedData)owner).Name : owner.ToString(); + TNew updatedValue = (TNew)ReflectionUtils.GetValueFromPropertyOrField(owner, memberInfo); + Debug.Log($"Successfully updated {memberInfo.Name} to {updatedValue} in {ownerName}."); + } + else + { + string ownerName = owner is INamedData ? ((INamedData)owner).Name : owner.ToString(); + Debug.LogWarning($"Failed to update {memberInfo.Name} in {ownerName}."); + } + } + + protected bool AttemptToUpdateProperty(MemberInfo memberInfo, object owner) + { + // Check if there is a non-null obsolete reference available (e.g. use LegacyProperty attribute). + MemberInfo legacyPropertyInfo = EditorReflectionUtils.GetAllFieldsAndProperties(owner) + .FirstOrDefault(property => property.GetCustomAttribute() != null + && property.GetCustomAttribute().NewPropertyName == memberInfo.Name); + + if (legacyPropertyInfo == null) + { + return false; + } + + TOld legacyPropertyValue = (TOld)ReflectionUtils.GetValueFromPropertyOrField(owner, legacyPropertyInfo); + + if (legacyPropertyValue == null) + { + return true; + } + + TNew propertyValue = (TNew)ReflectionUtils.GetValueFromPropertyOrField(owner, memberInfo); + + if (propertyValue == null) + { + propertyValue = (TNew)ReflectionUtils.CreateInstanceOfType(ReflectionUtils.GetDeclaredTypeOfPropertyOrField(memberInfo)); + ReflectionUtils.SetValueToPropertyOrField(owner, memberInfo, propertyValue); + } + + return PerformUpgrade(ref propertyValue, ref legacyPropertyValue); + } + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/PropertyUpdater.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Updaters/PropertyUpdater.cs.meta new file mode 100644 index 000000000..ed033b9d7 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/PropertyUpdater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 77cc962845c902e47be656173b7fd9ff +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/Updater.cs b/Source/Core/Editor/ProcessUpgradeTool/Updaters/Updater.cs new file mode 100644 index 000000000..358cf5454 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/Updater.cs @@ -0,0 +1,17 @@ +using System; +using System.Reflection; + +namespace VRBuilder.Editor.ProcessUpgradeTool +{ + /// + /// Generic implementation of . + /// + public abstract class Updater : IUpdater + { + /// + public Type UpdatedType => typeof(T); + + /// + public abstract void Update(MemberInfo memberInfo, object owner); + } +} diff --git a/Source/Core/Editor/ProcessUpgradeTool/Updaters/Updater.cs.meta b/Source/Core/Editor/ProcessUpgradeTool/Updaters/Updater.cs.meta new file mode 100644 index 000000000..f865229e6 --- /dev/null +++ b/Source/Core/Editor/ProcessUpgradeTool/Updaters/Updater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 75a5821028424074b8573b022dbfbea4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/ProcessValidation/DisabledValidationHandler.cs b/Source/Core/Editor/ProcessValidation/DisabledValidationHandler.cs index ef2a7fbb1..4132293b0 100644 --- a/Source/Core/Editor/ProcessValidation/DisabledValidationHandler.cs +++ b/Source/Core/Editor/ProcessValidation/DisabledValidationHandler.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using VRBuilder.Core; using VRBuilder.Editor.ProcessValidation; diff --git a/Source/Core/Editor/ProcessValidation/EditorReportEntry.cs b/Source/Core/Editor/ProcessValidation/EditorReportEntry.cs index c72460ebf..397eed78f 100644 --- a/Source/Core/Editor/ProcessValidation/EditorReportEntry.cs +++ b/Source/Core/Editor/ProcessValidation/EditorReportEntry.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using VRBuilder.Core.Validation; diff --git a/Source/Core/Editor/ProcessValidation/IContext.cs b/Source/Core/Editor/ProcessValidation/IContext.cs index 68377885f..e651e54b5 100644 --- a/Source/Core/Editor/ProcessValidation/IContext.cs +++ b/Source/Core/Editor/ProcessValidation/IContext.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH namespace VRBuilder.Editor.ProcessValidation { diff --git a/Source/Core/Editor/ProcessValidation/IContextResolver.cs b/Source/Core/Editor/ProcessValidation/IContextResolver.cs index 4759765a1..1a288ca99 100644 --- a/Source/Core/Editor/ProcessValidation/IContextResolver.cs +++ b/Source/Core/Editor/ProcessValidation/IContextResolver.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using VRBuilder.Core; diff --git a/Source/Core/Editor/ProcessValidation/IValidationHandler.cs b/Source/Core/Editor/ProcessValidation/IValidationHandler.cs index 408933f36..524f7658f 100644 --- a/Source/Core/Editor/ProcessValidation/IValidationHandler.cs +++ b/Source/Core/Editor/ProcessValidation/IValidationHandler.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.Collections.Generic; using VRBuilder.Core; diff --git a/Source/Core/Editor/ProcessValidation/IValidationReport.cs b/Source/Core/Editor/ProcessValidation/IValidationReport.cs index afe0ebbbb..3ec504385 100644 --- a/Source/Core/Editor/ProcessValidation/IValidationReport.cs +++ b/Source/Core/Editor/ProcessValidation/IValidationReport.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.Collections.Generic; using System.Reflection; diff --git a/Source/Core/Editor/ProcessValidation/IValidationScope.cs b/Source/Core/Editor/ProcessValidation/IValidationScope.cs index 3a6ed0b20..ce1508c38 100644 --- a/Source/Core/Editor/ProcessValidation/IValidationScope.cs +++ b/Source/Core/Editor/ProcessValidation/IValidationScope.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.Collections.Generic; diff --git a/Source/Core/Editor/ProcessValidation/IValidator.cs b/Source/Core/Editor/ProcessValidation/IValidator.cs index 8761a9297..d252e88a8 100644 --- a/Source/Core/Editor/ProcessValidation/IValidator.cs +++ b/Source/Core/Editor/ProcessValidation/IValidator.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; diff --git a/Source/Core/Editor/ProcessValidation/ValidationTooltipGenerator.cs b/Source/Core/Editor/ProcessValidation/ValidationTooltipGenerator.cs index f38f8cd44..bf74ea7f6 100644 --- a/Source/Core/Editor/ProcessValidation/ValidationTooltipGenerator.cs +++ b/Source/Core/Editor/ProcessValidation/ValidationTooltipGenerator.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.Collections.Generic; using System.Linq; diff --git a/Source/Core/Editor/Resources/icon_info_dark.png b/Source/Core/Editor/Resources/icon_info_dark.png new file mode 100644 index 000000000..6ece6ea66 --- /dev/null +++ b/Source/Core/Editor/Resources/icon_info_dark.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c32b1bf4175659c4b9d798c3a1dae6d5e6b62e035607186c72e8c32f4e23d0b +size 2495 diff --git a/Source/Core/Editor/Resources/icon_info_dark.png.meta b/Source/Core/Editor/Resources/icon_info_dark.png.meta new file mode 100644 index 000000000..fceee34e5 --- /dev/null +++ b/Source/Core/Editor/Resources/icon_info_dark.png.meta @@ -0,0 +1,123 @@ +fileFormatVersion: 2 +guid: 4a3e970386ce5924ca461cff96e5f095 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/Resources/icon_info_light.png b/Source/Core/Editor/Resources/icon_info_light.png new file mode 100644 index 000000000..cdb160cba --- /dev/null +++ b/Source/Core/Editor/Resources/icon_info_light.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a536d887744102ec2de20c1fb0a9d2bee6b1156f33f44aa777884be54ee5eb5 +size 2508 diff --git a/Source/Core/Editor/Resources/icon_info_light.png.meta b/Source/Core/Editor/Resources/icon_info_light.png.meta new file mode 100644 index 000000000..c71a8c16c --- /dev/null +++ b/Source/Core/Editor/Resources/icon_info_light.png.meta @@ -0,0 +1,123 @@ +fileFormatVersion: 2 +guid: 074c7fe97b668c3448fda4653804ed8a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/Serialization/JsonEditorConfigurationSerializer.cs b/Source/Core/Editor/Serialization/JsonEditorConfigurationSerializer.cs index 9c8209d40..bb43a731a 100644 --- a/Source/Core/Editor/Serialization/JsonEditorConfigurationSerializer.cs +++ b/Source/Core/Editor/Serialization/JsonEditorConfigurationSerializer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.Collections.Generic; using VRBuilder.Editor.Configuration; diff --git a/Source/Core/Editor/Setup/ProcessSceneSetup.cs b/Source/Core/Editor/Setup/ProcessSceneSetup.cs index 987c4ded9..9ae5342b7 100644 --- a/Source/Core/Editor/Setup/ProcessSceneSetup.cs +++ b/Source/Core/Editor/Setup/ProcessSceneSetup.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.IO; diff --git a/Source/Core/Editor/Setup/RuntimeConfigurationSetup.cs b/Source/Core/Editor/Setup/RuntimeConfigurationSetup.cs index 131efe238..119810047 100644 --- a/Source/Core/Editor/Setup/RuntimeConfigurationSetup.cs +++ b/Source/Core/Editor/Setup/RuntimeConfigurationSetup.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using UnityEditor; using UnityEngine; diff --git a/Source/Core/Editor/Setup/SceneSetup.cs b/Source/Core/Editor/Setup/SceneSetup.cs index 6a327b3e9..165d146a8 100644 --- a/Source/Core/Editor/Setup/SceneSetup.cs +++ b/Source/Core/Editor/Setup/SceneSetup.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.IO; using System.Linq; diff --git a/Source/Core/Editor/Setup/SceneSetupUtils.cs b/Source/Core/Editor/Setup/SceneSetupUtils.cs index 0ad9bafbb..ccb3199f6 100644 --- a/Source/Core/Editor/Setup/SceneSetupUtils.cs +++ b/Source/Core/Editor/Setup/SceneSetupUtils.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.IO; diff --git a/Source/Core/Editor/SystemClipboard.cs b/Source/Core/Editor/SystemClipboard.cs index 7c5e1d794..6b8fd2eae 100644 --- a/Source/Core/Editor/SystemClipboard.cs +++ b/Source/Core/Editor/SystemClipboard.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.Text; using VRBuilder.Core; diff --git a/Source/Core/Editor/TestTools/AssemblyAttributes.cs b/Source/Core/Editor/TestTools/AssemblyAttributes.cs deleted file mode 100644 index ca2e3db9e..000000000 --- a/Source/Core/Editor/TestTools/AssemblyAttributes.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) 2013-2019 Innoactive GmbH -// Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH - -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("VRBuilder.Core.Tests.Editmode")] diff --git a/Source/Core/Editor/TestTools/AssemblyAttributes.cs.meta b/Source/Core/Editor/TestTools/AssemblyAttributes.cs.meta deleted file mode 100644 index dd1ab88f1..000000000 --- a/Source/Core/Editor/TestTools/AssemblyAttributes.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: eac8f4ed5a2c69647944f01f93302c39 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/EditorImguiTest.cs b/Source/Core/Editor/TestTools/EditorImguiTester/EditorImguiTest.cs deleted file mode 100644 index 37438ddc3..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/EditorImguiTest.cs +++ /dev/null @@ -1,189 +0,0 @@ -// Copyright (c) 2013-2019 Innoactive GmbH -// Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH - -using System; -using System.Linq; -using System.Collections; -using System.Collections.Generic; -using Newtonsoft.Json; -using NUnit.Framework; -using UnityEditor; -using UnityEngine; -using VRBuilder.Core.Utils; -using VRBuilder.Editor.ImguiTester; -using UnityEngine.TestTools; - -namespace VRBuilder.Editor.TestTools -{ - /// - /// Inherit from this class to implement your own editor IMGUI tests. - /// - internal abstract class EditorImguiTest : IEditorImguiTest where T : EditorWindow - { - private static JsonSerializerSettings JsonSerializerSettings - { - get - { - return new JsonSerializerSettings - { - Converters = new List - { - new ImguiEventConverter() - } - }; - } - } - - /// - public event EventHandler Finished; - - /// - public abstract string GivenDescription { get; } - - /// - public abstract string WhenDescription { get; } - - /// - public abstract string ThenDescription { get; } - - /// - /// - /// With default implementation, the record file is named by a full name of its type and located in . - /// - public virtual string PathToRecordedActions - { - get - { - if (AssetFolderForRecordedActions.LastOrDefault() == '/') - { - return AssetFolderForRecordedActions + GetType().FullName + ".json"; - } - - return AssetFolderForRecordedActions + '/' + GetType().FullName + ".json"; - } - } - - /// - /// Asset folder where the user actions record is saved. - /// It is used in the default implementation of . - /// It should start with assets and forward slashes ("/") have to be used as path separators. - /// - protected abstract string AssetFolderForRecordedActions { get; } - - private EditorWindow result; - - /// Used internally by the Editor IMGUI tester tool. - /// Override instead. - public EditorWindow BaseGiven() - { - return Given(); - } - - /// - /// Override instead. - public void BaseThen(EditorWindow window) - { - Then((T)window); - } - - /// - /// Return editor window ready for recording/playing testing sequence. - /// Editor window has to be shown with ShowUtility method. - /// - protected abstract T Given(); - - /// - /// Assert there. - /// - protected abstract void Then(T window); - - /// - /// When you implement a non-abstract, non-generic class which inherits from , - /// this method will be automatically detected by the test runner. You don't need to do anything. - /// -#if BUILDER_IGNORE_EDITOR_IMGUI_TESTS - [Ignore("Editor IMGUI tests are disabled, skipping it.")] -#endif - [UnityTest] - public IEnumerator Test() - { - TestState state = TestState.Pending; - - try - { - result = BaseGiven(); - } - catch (Exception e) - { - Debug.LogErrorFormat("Test {0} failed during initialization: {1}", GetType().GetNameWithNesting(), e); - state = TestState.Failed; - } - - //Make sure that we call when/then outside of the OnGUI call so RepaintImmediately would not throw an error. - EditorApplication.delayCall += () => - { - try - { - BaseWhen(result); - BaseThen(result); - state = TestState.Passed; - } - catch (Exception e) - { - Debug.LogErrorFormat("Test {0} failed: {1}", GetType().GetNameWithNesting(), e); - state = TestState.Failed; - } - }; - - while (state == TestState.Pending) - { - yield return null; - } - - Finished?.Invoke(this, new EditorImguiTestFinishedEventArgs(state)); - } - - /// - /// As , this method will be automatically located. - /// If you need additional teardown logic, implement . - /// - [TearDown] - public void Teardown() - { - if (result != null) - { - result.Close(); - } - - if (TestableEditorElements.Mode == TestableEditorElements.DisplayMode.Playback) - { - TestableEditorElements.StopPlayback(); - } - - AdditionalTeardown(); - } - - /// - /// Implement your additional teardown logic here. - /// - protected virtual void AdditionalTeardown() - { - } - - /// - /// Apply recorded user actions to the given . - /// - private void BaseWhen(EditorWindow window) - { - TextAsset recordedActionsAsset = AssetDatabase.LoadAssetAtPath(PathToRecordedActions); - if (recordedActionsAsset == null) - { - throw new UserActionsRecordNotFoundException("User actions at path {0} are not found.", PathToRecordedActions); - } - - List userActions = JsonConvert.DeserializeObject>(recordedActionsAsset.text, JsonSerializerSettings); - EditorWindowTestPlayer.StartPlayback(window, userActions); - } - } -} diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/EditorImguiTest.cs.meta b/Source/Core/Editor/TestTools/EditorImguiTester/EditorImguiTest.cs.meta deleted file mode 100644 index 5ae367c48..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/EditorImguiTest.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 1e3e3085429847d88163dd803ddc8a7d -timeCreated: 1551717923 \ No newline at end of file diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/EditorImguiTestFinishedEventArgs.cs b/Source/Core/Editor/TestTools/EditorImguiTester/EditorImguiTestFinishedEventArgs.cs deleted file mode 100644 index a03110568..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/EditorImguiTestFinishedEventArgs.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) 2013-2019 Innoactive GmbH -// Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH - -using System; - -namespace VRBuilder.Editor.TestTools -{ - /// - /// Event args for event which is fired when a test finishes its execution. - /// - internal class EditorImguiTestFinishedEventArgs : EventArgs - { - /// - /// Result from the last . - /// - public TestState Result { get; private set; } - - public EditorImguiTestFinishedEventArgs(TestState result) - { - Result = result; - } - } -} diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/EditorImguiTestFinishedEventArgs.cs.meta b/Source/Core/Editor/TestTools/EditorImguiTester/EditorImguiTestFinishedEventArgs.cs.meta deleted file mode 100644 index 6399f13c4..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/EditorImguiTestFinishedEventArgs.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: cc5141370da64fb781c1615aa975ebd1 -timeCreated: 1552055112 \ No newline at end of file diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/EmptyTestStrategy.cs b/Source/Core/Editor/TestTools/EditorImguiTester/EmptyTestStrategy.cs deleted file mode 100644 index 540f6de9e..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/EmptyTestStrategy.cs +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright (c) 2013-2019 Innoactive GmbH -// Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH - -using VRBuilder.Core; -using VRBuilder.Editor.UI.Windows; -using UnityEngine; - -namespace VRBuilder.Editor.TestTools -{ - /// - /// An editing strategy that does nothing. Use it to isolate windows logic during testing. - /// - internal class EmptyTestStrategy : IEditingStrategy - { - public IProcess CurrentProcess { get; } - public IChapter CurrentChapter { get; private set; } - - /// - public void HandleNewProcessWindow(ProcessEditorWindow window) - { - } - - /// - public void HandleNewStepWindow(IStepView window) - { - } - - /// - public void HandleCurrentProcessModified() - { - } - - /// - public void HandleProcessWindowClosed(ProcessEditorWindow window) - { - } - - /// - public void HandleStepWindowClosed(IStepView window) - { - } - - /// - public void HandleStartEditingProcess() - { - } - - /// - public void HandleCurrentProcessChanged(string processName) - { - } - - /// - public void HandleCurrentStepModified(IStep step) - { - } - - /// - public void HandleStartEditingStep() - { - } - - /// - public void HandleCurrentStepChanged(IStep step) - { - } - - public void HandleCurrentChapterChanged(IChapter chapter) - { - CurrentChapter = chapter; - } - - /// - public void HandleProjectIsGoingToUnload() - { - } - - /// - public void HandleProjectIsGoingToSave() - { - } - - /// - public void HandleExitingPlayMode() - { - } - - /// - public void HandleEnterPlayMode() - { - } - - /// - public void HandleChapterChangeRequest(IChapter chapter) - { - } - } -} diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/EmptyTestStrategy.cs.meta b/Source/Core/Editor/TestTools/EditorImguiTester/EmptyTestStrategy.cs.meta deleted file mode 100644 index fda118178..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/EmptyTestStrategy.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 0a4b7730bc5640db806a282d0f45b0b6 -timeCreated: 1588742164 \ No newline at end of file diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/IEditorImguiTest.cs b/Source/Core/Editor/TestTools/EditorImguiTester/IEditorImguiTest.cs deleted file mode 100644 index b0ee73883..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/IEditorImguiTest.cs +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) 2013-2019 Innoactive GmbH -// Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH - -using System; -using System.Collections; -using UnityEditor; - -namespace VRBuilder.Editor.TestTools -{ - /// - /// Base interface for all Editor IMGUI tests. - /// Used internally. - /// See instead. - /// - internal interface IEditorImguiTest - { - /// - /// Invoked when test is either fails or passes. - /// - event EventHandler Finished; - - /// - /// Prerequisites of the test. - /// - string GivenDescription { get; } - - /// - /// What has to be done by user. - /// - string WhenDescription { get; } - - /// - /// Expected result. - /// - string ThenDescription { get; } - - /// - /// Path to the file with recorded user actions. - /// It should start with assets and forward slashes ("/") have to be used as path separators. - /// - string PathToRecordedActions { get; } - - /// - /// Used internally. . - /// - IEnumerator Test(); - - /// - /// Used internally. . - /// - void Teardown(); - - /// - /// Used internally. . - /// - EditorWindow BaseGiven(); - - /// - /// Used internally. . - /// - void BaseThen(EditorWindow window); - } -} diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/IEditorImguiTest.cs.meta b/Source/Core/Editor/TestTools/EditorImguiTester/IEditorImguiTest.cs.meta deleted file mode 100644 index 428448dfc..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/IEditorImguiTest.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 8ba13ad5da99458dae71a2d15147ba9f -timeCreated: 1552055103 \ No newline at end of file diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/ImguiEventConverter.cs b/Source/Core/Editor/TestTools/EditorImguiTester/ImguiEventConverter.cs deleted file mode 100644 index 9d1aeeee0..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/ImguiEventConverter.cs +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright (c) 2013-2019 Innoactive GmbH -// Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH - -using System; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using UnityEngine; - -namespace VRBuilder.Editor.TestTools -{ - /// - /// Json converter for an IMGUI event. - /// - internal class ImguiEventConverter : JsonConverter - { - /// - public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) - { - Event imguiEvent = (Event)value; - - if (imguiEvent == null) - { - return; - } - - JObject jObject = new JObject - { - {"alt", imguiEvent.alt}, - {"button", imguiEvent.button}, - {"capsLock", imguiEvent.capsLock}, - {"character", imguiEvent.character}, - {"clickCount", imguiEvent.clickCount}, - {"command", imguiEvent.command}, - {"commandName", imguiEvent.commandName}, - {"control", imguiEvent.control}, - {"delta.x", imguiEvent.delta.x}, - {"delta.y", imguiEvent.delta.y}, - {"displayIndex", imguiEvent.displayIndex}, - {"keyCode", (int)imguiEvent.keyCode}, - {"modifiers", (int)imguiEvent.modifiers}, - {"mousePosition.x", imguiEvent.mousePosition.x}, - {"mousePosition.y", imguiEvent.mousePosition.y}, - {"numeric", imguiEvent.numeric}, - {"pressure", imguiEvent.pressure}, - {"shift", imguiEvent.shift}, - {"type", (int)imguiEvent.type}, - }; - jObject.WriteTo(writer); - } - - /// - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) - { - if (reader.TokenType == JsonToken.Null) - { - return null; - } - - JObject jObject = JObject.Load(reader); - - return new Event() - { - alt = jObject["alt"].Value(), - button = jObject["button"].Value(), - capsLock = jObject["capsLock"].Value(), - character = jObject["character"].Value(), - clickCount = jObject["clickCount"].Value(), - command = jObject["command"].Value(), - commandName = jObject["commandName"].Value(), - control = jObject["control"].Value(), - delta = new Vector2((float) jObject["delta.x"].Value(), (float) jObject["delta.y"].Value()), - displayIndex = jObject["displayIndex"].Value(), - keyCode = (KeyCode)jObject["keyCode"].Value(), - modifiers = (EventModifiers)jObject["modifiers"].Value(), - mousePosition = new Vector2((float) jObject["mousePosition.x"].Value(), (float) jObject["mousePosition.y"].Value()), - numeric = jObject["numeric"].Value(), - pressure = (float) jObject["pressure"].Value(), - shift = jObject["shift"].Value(), - type = (EventType)jObject["type"].Value(), - }; - } - - /// - public override bool CanConvert(Type objectType) - { - return typeof(Event).IsAssignableFrom(objectType); - } - } -} diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/ImguiEventConverter.cs.meta b/Source/Core/Editor/TestTools/EditorImguiTester/ImguiEventConverter.cs.meta deleted file mode 100644 index 305e0fe86..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/ImguiEventConverter.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 46cc34acd7d34c2dbd272aacb9864f40 -timeCreated: 1551197906 \ No newline at end of file diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/TestState.cs b/Source/Core/Editor/TestTools/EditorImguiTester/TestState.cs deleted file mode 100644 index 50c4b5c34..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/TestState.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2013-2019 Innoactive GmbH -// Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH - -namespace VRBuilder.Editor.TestTools -{ - /// - /// State of - /// - internal enum TestState - { - Normal, - Pending, - Failed, - Passed - } -} diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/TestState.cs.meta b/Source/Core/Editor/TestTools/EditorImguiTester/TestState.cs.meta deleted file mode 100644 index 0fe0fde5a..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/TestState.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 39c421e3697d44bba87a89b07e8ff365 -timeCreated: 1551893584 \ No newline at end of file diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/UserAction.cs b/Source/Core/Editor/TestTools/EditorImguiTester/UserAction.cs deleted file mode 100644 index 805705376..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/UserAction.cs +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) 2013-2019 Innoactive GmbH -// Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH - -using System.Collections.Generic; -using System.Runtime.Serialization; -using UnityEngine; - -namespace VRBuilder.Editor.TestTools -{ - /// - /// Data structure for an atomic user action (click mouse, select item in a context menu). - /// - [DataContract(IsReference = false)] - internal class UserAction - { - /// - /// Recorded UnityGUI event. - /// - [DataMember] - public Event Event { get; set; } - - /// - /// List of recorded selections. - /// - [DataMember] - public List PrepickedSelections { get; set; } - - public UserAction() - { - PrepickedSelections = new List(); - } - } -} diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/UserAction.cs.meta b/Source/Core/Editor/TestTools/EditorImguiTester/UserAction.cs.meta deleted file mode 100644 index 8ec4b7821..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/UserAction.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 5a5ea5100b7f44388df8190034b1c6da -timeCreated: 1551373675 \ No newline at end of file diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/UserActionsRecordNotFoundException.cs b/Source/Core/Editor/TestTools/EditorImguiTester/UserActionsRecordNotFoundException.cs deleted file mode 100644 index 30c0a21d8..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/UserActionsRecordNotFoundException.cs +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2013-2019 Innoactive GmbH -// Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH - -using System.IO; - -namespace VRBuilder.Editor.ImguiTester -{ - /// - /// Exception that is thrown when file with recorded user actions is not found by the Editor IMGUI Tester. - /// - internal class UserActionsRecordNotFoundException : FileNotFoundException - { - public UserActionsRecordNotFoundException(string message, params object[] formatArgs) : base(string.Format(message, formatArgs)) - { - } - } -} diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/UserActionsRecordNotFoundException.cs.meta b/Source/Core/Editor/TestTools/EditorImguiTester/UserActionsRecordNotFoundException.cs.meta deleted file mode 100644 index a37246d81..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/UserActionsRecordNotFoundException.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 2b1e10802d9b44ed9cbafb46af4432e6 -timeCreated: 1552055109 \ No newline at end of file diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorImguiTestsExplorer.cs b/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorImguiTestsExplorer.cs deleted file mode 100644 index dcf961ed7..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorImguiTestsExplorer.cs +++ /dev/null @@ -1,404 +0,0 @@ -// Copyright (c) 2013-2019 Innoactive GmbH -// Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH - -using System; -using System.Linq; -using System.Collections; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using UnityEditor; -using UnityEngine; -using VRBuilder.Core.Utils; - -namespace VRBuilder.Editor.TestTools -{ - /// - /// Editor window which allows user to manage editor IMGUI tests. - /// - internal sealed class EditorImguiTestsExplorer : EditorWindow - { - private class TestMetadata - { - public TestState State { get; set; } - public bool FoldedOut { get; set; } - } - - private static bool IsUiDisabled - { - get - { - return EditorWindowTestRecorder.IsRecording; - } - } - - private static ReadOnlyCollection>> Tests - { - get - { - if (tests == null) - { - Setup(); - } - - return new ReadOnlyCollection>>(tests); - } - } - - private static EditorWindowTestRecorder recorder; - private IEditorImguiTest recordedTest; - private static Dictionary testMetadatas = new Dictionary(); - private static IList>> tests; - private static Dictionary iconsForStates; - - private Vector2 scrollPosition; - - private IEditorImguiTest executedTest; - private IEnumerator currentTestExecutionEnumerator; - - private IEnumerator pendingTestsEnumerator; - - private static void Setup() - { - tests = ReflectionUtils - .GetConcreteImplementationsOf() - .Select(type => Activator.CreateInstance(type, new object[0])) - .Cast() - .GroupBy(test => test.GetType().Namespace) - .ToDictionary(group => group.Key, group => (IEnumerable)group) - .ToList(); - - testMetadatas = tests.SelectMany(group => group.Value).ToDictionary(test => test, test => new TestMetadata - { - State = TestState.Normal, - FoldedOut = false - }); - - iconsForStates = new Dictionary - { - {TestState.Normal, EditorGUIUtility.IconContent("TestNormal").image as Texture2D}, - {TestState.Pending, EditorGUIUtility.IconContent("TestStopwatch").image as Texture2D}, - {TestState.Failed, EditorGUIUtility.IconContent("TestFailed").image as Texture2D}, - {TestState.Passed, EditorGUIUtility.IconContent("TestPassed").image as Texture2D} - }; - } - - [MenuItem("Tools/VR Builder/Developer/Editor IMGUI Tests Explorer", false, 81)] - private static void ShowFromMenu() - { - GetWindow(); - } - - private void UpdateCurrentTest() - { - testMetadatas[executedTest].State = TestState.Pending; - bool isTestRunning; - try - { - isTestRunning = currentTestExecutionEnumerator.MoveNext(); - } - catch (Exception e) - { - Debug.LogErrorFormat("Test {0} failed: {1}", executedTest.GetType().GetNameWithNesting(), e.Message); - testMetadatas[executedTest].State = TestState.Failed; - isTestRunning = false; - } - - if (isTestRunning) - { - return; - } - - executedTest.Teardown(); - executedTest = null; - currentTestExecutionEnumerator = null; - } - - private void OnGUI() - { - if (tests == null) - { - Setup(); - } - - SetupTab(); - - GUILayout.Space(EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing * 2f); - Rect pos = new Rect(EditorGUIUtility.standardVerticalSpacing, EditorGUIUtility.standardVerticalSpacing, 58f, EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing); - - if (GUI.Button(pos, "Run All")) - { - pendingTestsEnumerator = Tests.SelectMany(group => group.Value).GetEnumerator(); - } - - HandleTestExecution(); - DrawAllTestsData(pos); - DrawTestsList(); - Repaint(); - } - - private void SetupTab() - { - TestState worstState; - - if (testMetadatas.Any(test => test.Value.State == TestState.Pending)) - { - worstState = TestState.Pending; - } - else if (testMetadatas.Any(test => test.Value.State == TestState.Failed)) - { - worstState = TestState.Failed; - } - else if (testMetadatas.Any(test => test.Value.State == TestState.Normal)) - { - worstState = TestState.Normal; - } - else if (testMetadatas.Any(test => test.Value.State == TestState.Passed)) - { - worstState = TestState.Passed; - } - else - { - worstState = TestState.Normal; - } - - titleContent = new GUIContent("Editor Tests", iconsForStates[worstState]); - } - - private void DrawTestsList() - { - scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition); - { - foreach (KeyValuePair> group in Tests.OrderBy(group => group.Key)) - { - EditorGUILayout.LabelField(group.Key, EditorStyles.boldLabel); - - EditorGUI.indentLevel++; - { - foreach (IEditorImguiTest test in group.Value.OrderBy(test => test.GetType().Name)) - { - DrawTestView(test); - } - } - EditorGUI.indentLevel--; - } - } - EditorGUILayout.EndScrollView(); - } - - private void DrawAllTestsData(Rect pos) - { - if (executedTest == null) - { - int passed = testMetadatas.Values.Count(metadata => metadata.State == TestState.Passed); - int failed = testMetadatas.Values.Count(metadata => metadata.State == TestState.Failed); - int normal = testMetadatas.Values.Count(metadata => metadata.State == TestState.Normal); - - pos.x += pos.width; - pos.width = pos.height; - DrawTestStateIndicator(pos.position, TestState.Passed); - - pos.x += pos.width; - pos.width = EditorStyles.label.CalcSize(new GUIContent(passed.ToString())).x; - EditorGUI.LabelField(pos, passed.ToString()); - - pos.x += pos.width; - pos.width = pos.height; - DrawTestStateIndicator(pos.position, TestState.Failed); - - pos.x += pos.width; - pos.width = EditorStyles.label.CalcSize(new GUIContent(failed.ToString())).x; - EditorGUI.LabelField(pos, failed.ToString()); - - pos.x += pos.width; - pos.width = pos.height; - DrawTestStateIndicator(pos.position, TestState.Normal); - - pos.x += pos.width; - pos.width = EditorStyles.label.CalcSize(new GUIContent(normal.ToString())).x; - EditorGUI.LabelField(pos, normal.ToString()); - } - else - { - pos.x += pos.width; - pos.width = pos.height; - DrawTestStateIndicator(pos.position, TestState.Pending); - } - } - - private void DrawTestView(IEditorImguiTest test) - { - EditorGUILayout.BeginHorizontal(); - { - // GUILayout does not support indentation so draw one in front of GUILayoutButton manually. - GUILayout.Space(20f); - - DrawRunTestButton(test); - - EditorGUILayout.BeginVertical(); - { - // Draw foldout. - GUIStyle foldout = new GUIStyle(EditorStyles.foldout); - if (testMetadatas[test].FoldedOut) - { - foldout.fontStyle = FontStyle.Bold; - } - - testMetadatas[test].FoldedOut = EditorGUILayout.Foldout(testMetadatas[test].FoldedOut, test.GetType().Name, foldout); - - // Draw a test state indicator to the left of the foldout. - Rect foldoutRect = GUILayoutUtility.GetLastRect(); - DrawTestStateIndicator(new Vector2(61f, foldoutRect.y), testMetadatas[test].State); - - // Draw foldout contents, if necessary. - if (testMetadatas[test].FoldedOut) - { - DrawTestDescription(test); - if (DrawRecordTestButton(test)) - { - // Workaround for EndHorizontal. - return; - } - GUILayoutUtility.GetRect(3f, 3f); - } - } - EditorGUILayout.EndVertical(); - } - EditorGUILayout.EndHorizontal(); - } - - private static void DrawTestStateIndicator(Vector2 position, TestState state) - { - GUI.DrawTexture(new Rect(position, new Vector2(EditorGUIUtility.singleLineHeight, EditorGUIUtility.singleLineHeight)), iconsForStates[state]); - } - - private void DrawRunTestButton(IEditorImguiTest test) - { - EditorGUI.BeginDisabledGroup(IsUiDisabled); - { - if (GUILayout.Button("Run", GUILayout.Width(40f))) - { - StartTest(test); - } - } - EditorGUI.EndDisabledGroup(); - } - - private void StartTest(IEditorImguiTest test) - { - executedTest = test; - executedTest.Finished += OnCurrentTestFinished; - currentTestExecutionEnumerator = test.Test(); - } - - private bool DrawRecordTestButton(IEditorImguiTest test) - { - EditorGUILayout.BeginHorizontal(); - { - if (EditorWindowTestRecorder.IsRecording && recordedTest == test) - { - if (GUILayout.Button("Save the record")) - { - recorder.SendEvent(EditorGUIUtility.CommandEvent("SaveAndTerminate")); - return true; - } - - if (GUILayout.Button("Abort", GUILayout.Width(60f))) - { - recorder.SendEvent(EditorGUIUtility.CommandEvent("Abort")); - return true; - } - } - else - { - EditorGUI.BeginDisabledGroup(IsUiDisabled); - { - if (GUILayout.Button("Record")) - { - testMetadatas[test].State = TestState.Normal; - StartRecording(test); - return true; - } - } - EditorGUI.EndDisabledGroup(); - } - } - EditorGUILayout.EndHorizontal(); - return false; - } - - private Rect startRecordPosition; - - private void StartRecording(IEditorImguiTest test) - { - foreach (EditorWindowTestRecorder w in Resources.FindObjectsOfTypeAll()) - { - w.Close(); - } - - recordedTest = test; - - recorder = CreateInstance(); - recorder.ShowUtility(); - - recorder.StartRecording(test); - } - - private void DrawTestDescription(IEditorImguiTest test) - { - GUIStyle multilineLabel = new GUIStyle(EditorStyles.label) {wordWrap = true}; - EditorGUILayout.BeginHorizontal(); - { - EditorGUILayout.LabelField("Given", EditorStyles.label, GUILayout.Width(60f)); - EditorGUILayout.LabelField(test.GivenDescription, multilineLabel); - } - EditorGUILayout.EndHorizontal(); - - GUILayoutUtility.GetRect(3f, 3f); - - EditorGUILayout.BeginHorizontal(); - { - EditorGUILayout.LabelField("When", EditorStyles.label, GUILayout.Width(60f)); - EditorGUILayout.LabelField(test.WhenDescription, multilineLabel); - } - EditorGUILayout.EndHorizontal(); - - GUILayoutUtility.GetRect(3f, 3f); - - EditorGUILayout.BeginHorizontal(); - { - EditorGUILayout.LabelField("Then", EditorStyles.label, GUILayout.Width(60f)); - EditorGUILayout.LabelField(test.ThenDescription, multilineLabel); - } - EditorGUILayout.EndHorizontal(); - } - - private void OnCurrentTestFinished(object sender, EditorImguiTestFinishedEventArgs args) - { - testMetadatas[executedTest].State = args.Result; - executedTest.Finished -= OnCurrentTestFinished; - } - - private void HandleTestExecution() - { - if (executedTest == null) - { - if (pendingTestsEnumerator != null) - { - if (pendingTestsEnumerator.MoveNext()) - { - StartTest(pendingTestsEnumerator.Current); - } - else - { - pendingTestsEnumerator = null; - } - } - } - else - { - UpdateCurrentTest(); - } - } - } -} diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorImguiTestsExplorer.cs.meta b/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorImguiTestsExplorer.cs.meta deleted file mode 100644 index 89936e545..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorImguiTestsExplorer.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 6c9702eb5ac647ca97df7c314c22ce59 -timeCreated: 1551870291 \ No newline at end of file diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorWindowTestPlayer.cs b/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorWindowTestPlayer.cs deleted file mode 100644 index 3d1a41ad5..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorWindowTestPlayer.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) 2013-2019 Innoactive GmbH -// Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH - -using System; -using UnityEditor; -using UnityEngine; -using System.Collections.Generic; - -namespace VRBuilder.Editor.TestTools -{ - /// - /// Utility window which sends given sequence of events to another window. - /// - internal static class EditorWindowTestPlayer - { - /// - /// Start sending to the and invoke when done. - /// - public static void StartPlayback(EditorWindow window, IList recordedActions) - { - foreach (UserAction action in recordedActions) - { - TestableEditorElements.StartPlayback(action.PrepickedSelections); - window.RepaintImmediately(); - window.SendEvent(action.Event); - TestableEditorElements.StopPlayback(); - } - } - } -} diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorWindowTestPlayer.cs.meta b/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorWindowTestPlayer.cs.meta deleted file mode 100644 index 3dd2059f3..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorWindowTestPlayer.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: b8d99cd423984e8482e6ac02714447f6 -timeCreated: 1551373011 \ No newline at end of file diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorWindowTestRecorder.cs b/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorWindowTestRecorder.cs deleted file mode 100644 index 9b3d68330..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorWindowTestRecorder.cs +++ /dev/null @@ -1,251 +0,0 @@ -// Copyright (c) 2013-2019 Innoactive GmbH -// Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH - -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using UnityEditor; -using UnityEngine; - -namespace VRBuilder.Editor.TestTools -{ - /// - /// Utility window which draws itself on top of a given window and intercepts the events. - /// - internal class EditorWindowTestRecorder : EditorWindow - { - private static readonly JsonSerializerSettings serializerSettings = new JsonSerializerSettings - { - Converters = new List - { - new ImguiEventConverter() - } - }; - - private readonly IList userActions = new List(); - private IEditorImguiTest test; - private EditorWindow recordedWindow; - - /// - /// True if this is currently recording a . - /// - public static bool IsRecording { get; private set; } - - /// - /// Starts recording given . - /// - public void StartRecording(IEditorImguiTest test) - { - IsRecording = true; - - recordedWindow = test.BaseGiven(); - this.test = test; - - userActions.Clear(); - - TestableEditorElements.StartRecording(); - } - - private void OnDestroy() - { - if (IsRecording) - { - TestableEditorElements.Panic(); - if (recordedWindow != null) - { - recordedWindow.Close(); - } - } - } - - private void Abort() - { - IsRecording = false; - TestableEditorElements.Panic(); - if (recordedWindow != null) - { - recordedWindow.Close(); - } - - Close(); - } - - private void SaveAndTerminate() - { - JsonSerializer serializer = JsonSerializer.Create(serializerSettings); - - List lastPrepickedSelections = TestableEditorElements.StopRecording(); - - if (userActions.Any()) - { - userActions.Last().PrepickedSelections = lastPrepickedSelections; - } - - string serialized = JArray.FromObject(userActions, serializer).ToString(); - Directory.CreateDirectory(Path.GetDirectoryName(test.PathToRecordedActions)); - - StreamWriter file = null; - try - { - file = File.CreateText(test.PathToRecordedActions); - file.Write(serialized); - } - finally - { - IsRecording = false; - - file?.Close(); - - if (recordedWindow != null) - { - recordedWindow.Close(); - } - - AssetDatabase.ImportAsset(test.PathToRecordedActions); - - Close(); - } - } - - private bool ShouldRecordEvent() - { - if (Event.current.type == EventType.Layout) - { - return false; - } - - if (Event.current.type == EventType.Repaint) - { - return false; - } - - if (Event.current.isMouse && recordedWindow.position.Contains(Event.current.mousePosition + recordedWindow.position.position) == false) - { - return false; - } - - return true; - } - - private void OnGUI() - { - try - { - if (Event.current.type == EventType.ExecuteCommand && Event.current.commandName == "Abort") - { - Abort(); - return; - } - - if (Event.current.type == EventType.ExecuteCommand && Event.current.commandName == "SaveAndTerminate") - { - SaveAndTerminate(); - return; - } - - Rect newPos = recordedWindow.position; - - minSize = newPos.size; - maxSize = newPos.size; - position = newPos; - - MethodInfo onGui = recordedWindow.GetType().GetMethod("OnGUI", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); - - if (Event.current.type != EventType.Used) - { - if (ShouldRecordEvent()) - { - if (userActions.Any()) - { - userActions.Last().PrepickedSelections = TestableEditorElements.StopRecording(); - TestableEditorElements.StartRecording(); - } - - Event toRecord = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(Event.current, serializerSettings), serializerSettings); - - UserAction userActionToRecord = new UserAction { Event = toRecord }; - - if (ShouldReplaceLastUserAction()) - { - userActions[userActions.Count - 1] = userActionToRecord; - } - else - { - userActions.Add(userActionToRecord); - } - } - - onGui.Invoke(recordedWindow, new object[0]); - } - - Focus(); - } - catch - { - IsRecording = false; - TestableEditorElements.Panic(); - if (recordedWindow != null) - { - recordedWindow.Close(); - } - - Close(); - throw; - } - } - - private bool ShouldReplaceLastUserAction() - { - if (userActions.Any() == false) - { - return false; - } - - if (userActions.Last().Event.type != EventType.KeyDown) - { - return false; - } - - if (Event.current.type != EventType.ValidateCommand && Event.current.type != EventType.ExecuteCommand) - { - return false; - } - - Event lastEvent = userActions.Last().Event; - - if (lastEvent.control || lastEvent.command) - { - switch (Event.current.commandName) - { - case "Paste" when lastEvent.keyCode == KeyCode.V: - case "Copy" when lastEvent.keyCode == KeyCode.C: - case "Cut" when lastEvent.keyCode == KeyCode.X: - case "Duplicate" when lastEvent.keyCode == KeyCode.D: - case "Find" when lastEvent.keyCode == KeyCode.F: - case "SelectAll" when lastEvent.keyCode == KeyCode.A: - return true; - default: - return false; - } - } - - switch (Event.current.commandName) - { - case "Delete" when lastEvent.keyCode == KeyCode.Delete: - case "SoftDelete" when lastEvent.keyCode == KeyCode.Delete: - return true; - default: - return false; - } - } - - private void OnInspectorUpdate() - { - Repaint(); - } - } -} diff --git a/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorWindowTestRecorder.cs.meta b/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorWindowTestRecorder.cs.meta deleted file mode 100644 index 0d7897045..000000000 --- a/Source/Core/Editor/TestTools/EditorImguiTester/Windows/EditorWindowTestRecorder.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: c14f88e874ac4e238e19e014cd188a06 -timeCreated: 1551197915 \ No newline at end of file diff --git a/Source/Core/Editor/TestTools/VRBuilder.Editor.TestTools.asmdef b/Source/Core/Editor/TestTools/VRBuilder.Editor.TestTools.asmdef deleted file mode 100644 index ba73bcc58..000000000 --- a/Source/Core/Editor/TestTools/VRBuilder.Editor.TestTools.asmdef +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "VRBuilder.Editor.TestTools", - "rootNamespace": "", - "references": [ - "GUID:27619889b8ba8c24980f49ee34dbb44a", - "GUID:0acc523941302664db1f4e527237feb3", - "GUID:c8561f9de838ac04d8feeda695bc572d", - "GUID:e476a81b6ef7b824686666349a591a9a" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": true, - "precompiledReferences": [ - "nunit.framework.dll", - "Newtonsoft.Json.dll" - ], - "autoReferenced": false, - "defineConstraints": [ - "VR_BUILDER" - ], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/Source/Core/Editor/UI/BezierCurveHelper.cs b/Source/Core/Editor/UI/BezierCurveHelper.cs index b9b5d188a..682c4b4ab 100644 --- a/Source/Core/Editor/UI/BezierCurveHelper.cs +++ b/Source/Core/Editor/UI/BezierCurveHelper.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.Collections.Generic; using System.Linq; diff --git a/Source/Core/Editor/UI/BuilderEditorStyles.cs b/Source/Core/Editor/UI/BuilderEditorStyles.cs index 17b849162..ba4987b11 100644 --- a/Source/Core/Editor/UI/BuilderEditorStyles.cs +++ b/Source/Core/Editor/UI/BuilderEditorStyles.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using UnityEditor; diff --git a/Source/Core/Editor/UI/BuilderGUILayout.cs b/Source/Core/Editor/UI/BuilderGUILayout.cs index a506f921f..2ef48e5c2 100644 --- a/Source/Core/Editor/UI/BuilderGUILayout.cs +++ b/Source/Core/Editor/UI/BuilderGUILayout.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; diff --git a/Source/Core/Editor/UI/Drawers/AbstractDrawer.cs b/Source/Core/Editor/UI/Drawers/AbstractDrawer.cs index 6f7f878e7..ff97dc85a 100644 --- a/Source/Core/Editor/UI/Drawers/AbstractDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/AbstractDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Linq; diff --git a/Source/Core/Editor/UI/Drawers/AbstractInstantiatorDrawer.cs b/Source/Core/Editor/UI/Drawers/AbstractInstantiatorDrawer.cs index 266bd2dab..4d8f44afe 100644 --- a/Source/Core/Editor/UI/Drawers/AbstractInstantiatorDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/AbstractInstantiatorDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; diff --git a/Source/Core/Editor/UI/Drawers/BehaviorCollectionDrawer.cs b/Source/Core/Editor/UI/Drawers/BehaviorCollectionDrawer.cs index 288d08c4d..11fe0f655 100644 --- a/Source/Core/Editor/UI/Drawers/BehaviorCollectionDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/BehaviorCollectionDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Reflection; diff --git a/Source/Core/Editor/UI/Drawers/BehaviorExecutionStagesDrawer.cs b/Source/Core/Editor/UI/Drawers/BehaviorExecutionStagesDrawer.cs index 5b48353e5..afce7af87 100644 --- a/Source/Core/Editor/UI/Drawers/BehaviorExecutionStagesDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/BehaviorExecutionStagesDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using VRBuilder.Core.Behaviors; diff --git a/Source/Core/Editor/UI/Drawers/BehaviorInstantiatiorDrawer.cs b/Source/Core/Editor/UI/Drawers/BehaviorInstantiatiorDrawer.cs index 5b24e70de..f4269118a 100644 --- a/Source/Core/Editor/UI/Drawers/BehaviorInstantiatiorDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/BehaviorInstantiatiorDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; diff --git a/Source/Core/Editor/UI/Drawers/BoolDrawer.cs b/Source/Core/Editor/UI/Drawers/BoolDrawer.cs index 406e78bf3..092d87614 100644 --- a/Source/Core/Editor/UI/Drawers/BoolDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/BoolDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using UnityEditor; diff --git a/Source/Core/Editor/UI/Drawers/ConditionInstantiatorDrawer.cs b/Source/Core/Editor/UI/Drawers/ConditionInstantiatorDrawer.cs index a3eb60040..113d1cfc9 100644 --- a/Source/Core/Editor/UI/Drawers/ConditionInstantiatorDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/ConditionInstantiatorDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; diff --git a/Source/Core/Editor/UI/Drawers/DataOwnerDrawer.cs b/Source/Core/Editor/UI/Drawers/DataOwnerDrawer.cs index 81f06c0e1..98568c9e1 100644 --- a/Source/Core/Editor/UI/Drawers/DataOwnerDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/DataOwnerDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Linq; diff --git a/Source/Core/Editor/UI/Drawers/DefaultProcessDrawerAttribute.cs b/Source/Core/Editor/UI/Drawers/DefaultProcessDrawerAttribute.cs index 78c96f30b..0d76352ed 100644 --- a/Source/Core/Editor/UI/Drawers/DefaultProcessDrawerAttribute.cs +++ b/Source/Core/Editor/UI/Drawers/DefaultProcessDrawerAttribute.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; diff --git a/Source/Core/Editor/UI/Drawers/DrawerLocator.cs b/Source/Core/Editor/UI/Drawers/DrawerLocator.cs index 0b828eb64..6a6cbff3e 100644 --- a/Source/Core/Editor/UI/Drawers/DrawerLocator.cs +++ b/Source/Core/Editor/UI/Drawers/DrawerLocator.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; diff --git a/Source/Core/Editor/UI/Drawers/EnumDrawer.cs b/Source/Core/Editor/UI/Drawers/EnumDrawer.cs index a206b71f4..81e26671d 100644 --- a/Source/Core/Editor/UI/Drawers/EnumDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/EnumDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Linq; diff --git a/Source/Core/Editor/UI/Drawers/FloatDrawer.cs b/Source/Core/Editor/UI/Drawers/FloatDrawer.cs index 5a07286f1..74655c725 100644 --- a/Source/Core/Editor/UI/Drawers/FloatDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/FloatDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using UnityEditor; diff --git a/Source/Core/Editor/UI/Drawers/IProcessDrawer.cs b/Source/Core/Editor/UI/Drawers/IProcessDrawer.cs index 0123e6f60..f1ce451ba 100644 --- a/Source/Core/Editor/UI/Drawers/IProcessDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/IProcessDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Reflection; diff --git a/Source/Core/Editor/UI/Drawers/InstantiatorProcessDrawerAttribute.cs b/Source/Core/Editor/UI/Drawers/InstantiatorProcessDrawerAttribute.cs index a5a675519..ca5b9508b 100644 --- a/Source/Core/Editor/UI/Drawers/InstantiatorProcessDrawerAttribute.cs +++ b/Source/Core/Editor/UI/Drawers/InstantiatorProcessDrawerAttribute.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; diff --git a/Source/Core/Editor/UI/Drawers/IntDrawer.cs b/Source/Core/Editor/UI/Drawers/IntDrawer.cs index b2b7e4b81..c72c9760b 100644 --- a/Source/Core/Editor/UI/Drawers/IntDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/IntDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using UnityEditor; diff --git a/Source/Core/Editor/UI/Drawers/ListDrawer.cs b/Source/Core/Editor/UI/Drawers/ListDrawer.cs index 59650e142..b99dcd4cc 100644 --- a/Source/Core/Editor/UI/Drawers/ListDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/ListDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections; diff --git a/Source/Core/Editor/UI/Drawers/ListFloatColorDrawer.cs b/Source/Core/Editor/UI/Drawers/ListFloatColorDrawer.cs index fbb285f68..8947b2e5f 100644 --- a/Source/Core/Editor/UI/Drawers/ListFloatColorDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/ListFloatColorDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; diff --git a/Source/Core/Editor/UI/Drawers/LockableObjectsDrawer.cs b/Source/Core/Editor/UI/Drawers/LockableObjectsDrawer.cs index e61657e27..bbf260077 100644 --- a/Source/Core/Editor/UI/Drawers/LockableObjectsDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/LockableObjectsDrawer.cs @@ -1,17 +1,19 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; +using System.Collections.Generic; using System.Linq; +using UnityEditor; +using UnityEngine; +using UnityEngine.UIElements; using VRBuilder.Core; using VRBuilder.Core.Properties; using VRBuilder.Core.SceneObjects; -using UnityEditor; -using UnityEngine; -using VRBuilder.Core.Configuration; using VRBuilder.Core.Settings; -using System.Collections.Generic; +using VRBuilder.Editor.UI.Views; +using VRBuilder.Editor.UI.Windows; namespace VRBuilder.Editor.UI.Drawers { @@ -19,17 +21,16 @@ namespace VRBuilder.Editor.UI.Drawers internal class LockableObjectsDrawer : DataOwnerDrawer { private LockableObjectsCollection lockableCollection; - private SceneObjectTagBase selectedTag = new SceneObjectTag(); private Dictionary foldoutStatus = new Dictionary(); public override Rect Draw(Rect rect, object currentValue, Action changeValueCallback, GUIContent label) { - lockableCollection = (LockableObjectsCollection) currentValue; + lockableCollection = (LockableObjectsCollection)currentValue; Rect currentPosition = new Rect(rect.x, rect.y, rect.width, EditorDrawingHelper.HeaderLineHeight); currentPosition.y += 10; - GUI.Label(currentPosition,"Automatically unlocked objects in this step"); + GUI.Label(currentPosition, "Automatically unlocked objects in this step"); for (int i = 0; i < lockableCollection.SceneObjects.Count; i++) { @@ -42,87 +43,93 @@ public override Rect Draw(Rect rect, object currentValue, Action changeV EditorGUI.LabelField(currentPosition, "To add new ProcessSceneObject, drag it in here:"); currentPosition.y += EditorDrawingHelper.SingleLineHeight + EditorDrawingHelper.VerticalSpacing; - ProcessSceneObject newSceneObject = (ProcessSceneObject) EditorGUI.ObjectField(currentPosition, null, typeof(ProcessSceneObject), true); + ProcessSceneObject newSceneObject = (ProcessSceneObject)EditorGUI.ObjectField(currentPosition, null, typeof(ProcessSceneObject), true); if (newSceneObject != null) { lockableCollection.AddSceneObject(newSceneObject); } - currentPosition.y += EditorDrawingHelper.SingleLineHeight + EditorDrawingHelper.VerticalSpacing; - - currentPosition = DrawerLocator.GetDrawerForValue(selectedTag, typeof(SceneObjectTagBase)).Draw(currentPosition, selectedTag, (value) => { selectedTag = value as SceneObjectTagBase; }, "Select tag to unlock:"); ; - currentPosition.y += EditorDrawingHelper.SingleLineHeight + EditorDrawingHelper.VerticalSpacing; + currentPosition.y += EditorDrawingHelper.VerticalSpacing; - EditorGUI.BeginDisabledGroup(selectedTag.IsEmpty() || lockableCollection.TagsToUnlock.Contains(selectedTag.Guid)); - if (GUI.Button(currentPosition, "Add tag to unlock list")) + Rect guiRect = currentPosition; + guiRect.y += currentPosition.height; + guiRect.height = EditorDrawingHelper.SingleLineHeight; + if (GUI.Button(guiRect, "Add group to unlock list")) { - lockableCollection.AddTag(selectedTag.Guid); - - if (foldoutStatus.ContainsKey(selectedTag.Guid) == false) + Action onItemSelected = (SceneObjectGroups.SceneObjectGroup selectedGroup) => { - foldoutStatus.Add(selectedTag.Guid, true); - } + lockableCollection.AddGroup(selectedGroup.Guid); + + if (foldoutStatus.ContainsKey(selectedGroup.Guid) == false) + { + foldoutStatus.Add(selectedGroup.Guid, true); + } + }; + + DrawSearchableGroupListPopup(guiRect, onItemSelected, lockableCollection.TagsToUnlock); } - currentPosition.y += EditorDrawingHelper.SingleLineHeight + EditorDrawingHelper.VerticalSpacing; - EditorGUI.EndDisabledGroup(); + guiRect.y += EditorDrawingHelper.SingleLineHeight + EditorDrawingHelper.VerticalSpacing; - EditorGUI.LabelField(currentPosition, "Select the properties to attempt to unlock for each tag:"); - currentPosition.y += EditorDrawingHelper.SingleLineHeight + EditorDrawingHelper.VerticalSpacing; + EditorGUI.LabelField(guiRect, "Select the properties to attempt to unlock for each group:"); + guiRect.y += EditorDrawingHelper.SingleLineHeight + EditorDrawingHelper.VerticalSpacing; foreach (Guid guid in new List(lockableCollection.TagsToUnlock)) { - GUILayout.BeginArea(currentPosition); + GUILayout.BeginArea(guiRect); GUILayout.BeginHorizontal(); - if(foldoutStatus.ContainsKey(guid) == false) + if (foldoutStatus.ContainsKey(guid) == false) { foldoutStatus.Add(guid, false); } - foldoutStatus[guid] = EditorGUILayout.Foldout(foldoutStatus[guid], SceneObjectTags.Instance.GetLabel(guid)); + foldoutStatus[guid] = EditorGUILayout.Foldout(foldoutStatus[guid], SceneObjectGroups.Instance.GetLabel(guid)); - if(GUILayout.Button("x", GUILayout.ExpandWidth(false))) + if (GUILayout.Button("x", GUILayout.ExpandWidth(false))) { - lockableCollection.RemoveTag(guid); + lockableCollection.RemoveGroup(guid); + GUILayout.EndHorizontal(); + GUILayout.EndArea(); break; } - currentPosition.y += EditorDrawingHelper.SingleLineHeight + EditorDrawingHelper.VerticalSpacing; + guiRect.y += EditorDrawingHelper.SingleLineHeight + EditorDrawingHelper.VerticalSpacing; GUILayout.EndHorizontal(); GUILayout.EndArea(); if (foldoutStatus[guid]) { - foreach (Type type in PropertyReflectionHelper.ExtractFittingPropertyType(typeof(LockableProperty))) + foreach (Type type in PropertyReflectionHelper.ExtractFittingPropertyType(typeof(LockableProperty))) { - Rect objectPosition = currentPosition; + Rect objectPosition = guiRect; objectPosition.x += EditorDrawingHelper.IndentationWidth * 2f; objectPosition.width -= EditorDrawingHelper.IndentationWidth * 2f; - bool isFlagged = lockableCollection.IsPropertyEnabledForTag(guid, type); + bool isFlagged = lockableCollection.IsPropertyEnabledForGroup(guid, type); - if(EditorGUI.Toggle(currentPosition, isFlagged) != isFlagged) + if (EditorGUI.Toggle(guiRect, isFlagged) != isFlagged) { - if(isFlagged) + if (isFlagged) { - lockableCollection.RemovePropertyFromTag(guid, type); + lockableCollection.RemovePropertyFromGroup(guid, type); break; } else { - lockableCollection.AddPropertyToTag(guid, type); + lockableCollection.AddPropertyToGroup(guid, type); break; } } EditorGUI.LabelField(objectPosition, type.Name); - currentPosition.y += EditorDrawingHelper.SingleLineHeight + EditorDrawingHelper.VerticalSpacing; + guiRect.y += EditorDrawingHelper.SingleLineHeight + EditorDrawingHelper.VerticalSpacing; } } } + currentPosition = guiRect; // EditorDrawingHelper.HeaderLineHeight - 24f is just the magic number to make it properly fit... return new Rect(rect.x, rect.y, rect.width, currentPosition.y - EditorDrawingHelper.HeaderLineHeight - 24f); } @@ -134,12 +141,12 @@ private Rect DrawSceneObject(Rect currentPosition, ISceneObject sceneObject) Rect objectFieldPosition = currentPosition; objectFieldPosition.width -= 24; GUI.enabled = false; - EditorGUI.ObjectField(objectFieldPosition, (ProcessSceneObject) sceneObject, typeof(ProcessSceneObject), true); + EditorGUI.ObjectField(objectFieldPosition, (ProcessSceneObject)sceneObject, typeof(ProcessSceneObject), true); // If scene object is used by a property, dont allow removing it. GUI.enabled = lockableCollection.IsUsedInAutoUnlock(sceneObject) == false; objectFieldPosition.x = currentPosition.width - 24 + 6f; objectFieldPosition.width = 20; - if (GUI.Button(objectFieldPosition,"x", new GUIStyle(GUI.skin.button) { fontStyle = FontStyle.Bold })) + if (GUI.Button(objectFieldPosition, "x", new GUIStyle(GUI.skin.button) { fontStyle = FontStyle.Bold })) { lockableCollection.RemoveSceneObject(sceneObject); } @@ -185,5 +192,20 @@ private Rect DrawProperty(Rect currentPosition, LockableProperty property) EditorGUI.LabelField(objectPosition, property.GetType().Name); return currentPosition; } + + private void DrawSearchableGroupListPopup(Rect rect, Action onItemSelected, IEnumerable groupsToExclude) + { + VisualTreeAsset searchableList = ViewDictionary.LoadAsset(ViewDictionary.EnumType.SearchableList); + VisualTreeAsset groupListItem = ViewDictionary.LoadAsset(ViewDictionary.EnumType.SearchableListItem); + + SearchableGroupListPopup content = new SearchableGroupListPopup(onItemSelected, searchableList, groupListItem); + + var groups = new List(SceneObjectGroups.Instance.Groups); + groups = groups.Where(group => !groupsToExclude.Contains(group.Guid)).OrderBy(t => t.Label).ToList(); + content.SetAvailableGroups(groups); + content.SetWindowSize(windowWith: rect.width); + + UnityEditor.PopupWindow.Show(rect, content); + } } } diff --git a/Source/Core/Editor/UI/Drawers/MetadataWrapperDrawer.cs b/Source/Core/Editor/UI/Drawers/MetadataWrapperDrawer.cs index 9bf92cede..4a53c18fa 100644 --- a/Source/Core/Editor/UI/Drawers/MetadataWrapperDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/MetadataWrapperDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections; diff --git a/Source/Core/Editor/UI/Drawers/NameableDrawer.cs b/Source/Core/Editor/UI/Drawers/NameableDrawer.cs index a6f8fcd26..3254efef1 100644 --- a/Source/Core/Editor/UI/Drawers/NameableDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/NameableDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; diff --git a/Source/Core/Editor/UI/Drawers/ObjectDrawer.cs b/Source/Core/Editor/UI/Drawers/ObjectDrawer.cs index 27e5ac976..19aefada6 100644 --- a/Source/Core/Editor/UI/Drawers/ObjectDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/ObjectDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; diff --git a/Source/Core/Editor/UI/Drawers/ParticleSystemPropertySelectableValueDrawer.cs b/Source/Core/Editor/UI/Drawers/ParticleSystemPropertySelectableValueDrawer.cs index 5772a72ac..9aac61767 100644 --- a/Source/Core/Editor/UI/Drawers/ParticleSystemPropertySelectableValueDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/ParticleSystemPropertySelectableValueDrawer.cs @@ -1,3 +1,4 @@ +using System; using VRBuilder.Core.Properties; using VRBuilder.Core.SceneObjects; @@ -6,6 +7,7 @@ namespace VRBuilder.Editor.UI.Drawers /// /// Concrete implementation of for . /// + [Obsolete("This drawer is obsolete and will be removed in the next major version.")] [DefaultProcessDrawer(typeof(PropertyReferenceOrTagSelectableValue))] public class ParticleSystemPropertySelectableValueDrawer : SelectableValueDrawer, SceneObjectTag> { diff --git a/Source/Core/Editor/UI/Drawers/ProcessSceneReferenceDrawer.cs b/Source/Core/Editor/UI/Drawers/ProcessSceneReferenceDrawer.cs new file mode 100644 index 000000000..3cf76310a --- /dev/null +++ b/Source/Core/Editor/UI/Drawers/ProcessSceneReferenceDrawer.cs @@ -0,0 +1,542 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UnityEditor; +using UnityEngine; +using UnityEngine.UIElements; +using VRBuilder.Core.Configuration; +using VRBuilder.Core.Properties; +using VRBuilder.Core.SceneObjects; +using VRBuilder.Core.Settings; +using VRBuilder.Editor.UI.Views; +using VRBuilder.Editor.UI.Windows; +using VRBuilder.Editor.UndoRedo; + +namespace VRBuilder.Editor.UI.Drawers +{ + /// + /// Drawer for . + /// + [DefaultProcessDrawer(typeof(ProcessSceneReferenceBase))] + public class ProcessSceneReferenceDrawer : AbstractDrawer + { + protected bool isUndoOperation; + protected bool isExpanded; + + private static readonly EditorIcon deleteIcon = new EditorIcon("icon_delete"); + private static readonly EditorIcon editIcon = new EditorIcon("icon_edit"); + private static readonly EditorIcon showIcon = new EditorIcon("icon_info"); + private static int buttonWidth = 24; + + protected GUIStyle richTextLabelStyle; + + public override Rect Draw(Rect rect, object currentValue, Action changeValueCallback, GUIContent label) + { + ProcessSceneReferenceBase reference = (ProcessSceneReferenceBase)currentValue; + Type valueType = reference.GetReferenceType(); + List oldGuids = reference.Guids.ToList(); + Rect guiLineRect = rect; + + InitializeRichTextLabelStyle(); + + DrawLabel(ref rect, ref guiLineRect, label); + + DrawLimitationWarnings(reference.Guids, reference.AllowMultipleValues, ref rect, ref guiLineRect); + + DrawDragAndDropArea(ref rect, changeValueCallback, reference, oldGuids, ref guiLineRect, label); + + DrawMisconfigurationOnSelectedGameObjects(reference, valueType, ref rect, ref guiLineRect); + + return rect; + } + + private string GetReferenceValue(ProcessSceneReferenceBase reference) + { + if (reference.IsEmpty()) + { + return ""; + } + else + { + return reference.ToString(); + } + } + + private IEnumerable GetAllGuids(ISceneObject obj) + { + return new List() { obj.Guid }.Concat(obj.Guids); + } + + private void DrawLabel(ref Rect rect, ref Rect guiLineRect, GUIContent label) + { + GUIContent boldLabel = new GUIContent(label) { text = $"{label.text}" }; + EditorGUI.LabelField(rect, boldLabel, richTextLabelStyle); + } + + private void DrawLimitationWarnings(IEnumerable currentObjectGroups, bool allowMultipleValues, ref Rect originalRect, ref Rect guiLineRect) + { + if (!RuntimeConfigurator.Exists) + { + return; + } + + int groupedObjectsCount = currentObjectGroups.SelectMany(group => RuntimeConfigurator.Configuration.SceneObjectRegistry.GetObjects(group)).Distinct().Count(); + + string message = string.Empty; + MessageType messageType = MessageType.None; + + if (!allowMultipleValues && groupedObjectsCount > 1) + { + message = "This only supports a single scene object at a time."; + messageType = MessageType.Warning; + } + else if (groupedObjectsCount == 0) + { + if (SceneObjectGroups.Instance.Groups.Any(group => currentObjectGroups.Contains(group.Guid))) + { + message = "No objects found. A valid object must be spawned before this step."; + messageType = MessageType.Warning; + } + else + { + message = "No objects found in scene. This will result in a null reference."; + messageType = MessageType.Error; + } + } + + if (!string.IsNullOrEmpty(message)) + { + guiLineRect = AddNewRectLine(ref originalRect); + EditorGUI.HelpBox(guiLineRect, message, messageType); + } + + return; + } + + private void DrawDragAndDropArea(ref Rect rect, Action changeValueCallback, ProcessSceneReferenceBase reference, List oldGuids, ref Rect guiLineRect, GUIContent label) + { + Action droppedGameObject = (GameObject selectedSceneObject, Rect dropRect) => HandleDroppedGameObject(changeValueCallback, reference, oldGuids, selectedSceneObject, dropRect); + DropAreaGUI(ref rect, ref guiLineRect, reference, droppedGameObject, changeValueCallback, label); + } + + private void DrawMisconfigurationOnSelectedGameObjects(ProcessSceneReferenceBase reference, Type valueType, ref Rect originalRect, ref Rect guiLineRect) + { + + // Find all GameObjects that are missing the the component "valueType" needed + IEnumerable gameObjectsWithMissingConfiguration = reference.Guids + .SelectMany(guidToDisplay => RuntimeConfigurator.Configuration.SceneObjectRegistry.GetObjects(guidToDisplay)) + .Select(sceneObject => sceneObject.GameObject) + .Where(sceneObject => sceneObject == null || sceneObject.GetComponent(valueType) == null) + .Distinct(); + + + // Add FixIt all if more than one game object exist + if (gameObjectsWithMissingConfiguration.Count() > 1) + { + guiLineRect = AddNewRectLine(ref originalRect, EditorDrawingHelper.SingleLineHeight); + AddFixItAllButton(gameObjectsWithMissingConfiguration, valueType, ref originalRect, ref guiLineRect); + } + + // Add FixIt on each component + foreach (GameObject selectedGameObject in gameObjectsWithMissingConfiguration) + { + AddFixItButton(selectedGameObject, valueType, ref originalRect, ref guiLineRect); + } + } + + private void HandleDroppedGameObject(Action changeValueCallback, ProcessSceneReferenceBase reference, List oldGuids, GameObject selectedSceneObject, Rect dropDownRect) + { + if (selectedSceneObject != null) + { + ProcessSceneObject processSceneObject = selectedSceneObject.GetComponent(); + + if (processSceneObject == null) + { + Guid newGuid = OpenMissingProcessSceneObjectDialog(selectedSceneObject); + + if (newGuid != Guid.Empty) + { + SetNewGroups(reference, oldGuids, new List { newGuid }, changeValueCallback); + } + } + else if (GetAllGuids(processSceneObject).Count() == 1) + { + SetNewGroups(reference, oldGuids, GetAllGuids(processSceneObject), changeValueCallback); + } + else + { + // if the PSO has multiple groups we let the user decide which ones he wants to take + Action onItemSelected = (SceneObjectGroups.SceneObjectGroup selectedGroup) => + { + SetNewGroup(reference, oldGuids, selectedGroup.Guid, changeValueCallback); + }; + + // availableGroups the processSceneObject.Guid and all groups of the PSO + IEnumerable availableGroups = new List() { new SceneObjectGroups.SceneObjectGroup(SceneObjectGroups.UniqueGuidName, processSceneObject.Guid) }; + availableGroups = availableGroups.Concat(SceneObjectGroups.Instance.Groups.Where(group => processSceneObject.Guids.Contains(group.Guid) == true)); + DrawSearchableGroupListPopup(dropDownRect, onItemSelected, availableGroups); + } + } + } + + /// + /// Renders a drop area GUI for assigning groups to the behavior or condition. + /// + /// The rect of the whole behavior or condition. + /// The rect of the last drawn line. + /// The action to perform when a game object is dropped. + protected void DropAreaGUI(ref Rect originalRect, ref Rect guiLineRect, ProcessSceneReferenceBase reference, Action dropAction, Action changeValueCallback, GUIContent label) + { + Event evt = Event.current; + + // Measure the content size and determine how many lines the content will occupy + string referenceValue = GetReferenceValue(reference); + string tooltip = GetTooltip(reference); + string boxContent = string.IsNullOrEmpty(referenceValue) ? "Drop a game object here to assign it or any of its groups" : $"Selected {referenceValue}"; + GUIContent content = new GUIContent(boxContent, tooltip); + GUIStyle style = GUI.skin.box; + + int lines = CalculateContentLines(content, originalRect, style, 3 * buttonWidth + 16); // Adding 16 pixels for padding between buttons + float dropdownHeight = EditorDrawingHelper.ButtonHeight + (lines - 1) * EditorDrawingHelper.SingleLineHeight; + guiLineRect = AddNewRectLine(ref originalRect, dropdownHeight); + Rect flyoutRect = guiLineRect; + + GUILayout.BeginArea(guiLineRect); + GUILayout.BeginHorizontal(); + GUILayout.Box(content, GUILayout.Height(dropdownHeight), GUILayout.ExpandWidth(true)); + + if (GUILayout.Button(showIcon.Texture, GUILayout.Height(EditorDrawingHelper.ButtonHeight), GUILayout.MaxWidth(buttonWidth))) + { + OnShowReferencesClick(reference, changeValueCallback, dropdownHeight, flyoutRect); + } + if (GUILayout.Button(editIcon.Texture, GUILayout.Height(EditorDrawingHelper.ButtonHeight), GUILayout.MaxWidth(buttonWidth))) + { + OnEditReferencesClick(reference, changeValueCallback, dropdownHeight, flyoutRect); + } + + if (GUILayout.Button(deleteIcon.Texture, GUILayout.Height(EditorDrawingHelper.ButtonHeight), GUILayout.MaxWidth(buttonWidth))) + { + reference.ResetGuids(); + changeValueCallback(reference); + } + + GUILayout.EndHorizontal(); + GUILayout.EndArea(); + + switch (evt.type) + { + case EventType.DragUpdated: + case EventType.DragPerform: + if (!guiLineRect.Contains(evt.mousePosition)) + return; + + DragAndDrop.visualMode = DragAndDropVisualMode.Link; + + if (evt.type == EventType.DragPerform) + { + DragAndDrop.AcceptDrag(); + + foreach (GameObject dragged_object in DragAndDrop.objectReferences) + { + dropAction(dragged_object, flyoutRect); + } + } + break; + } + } + + private Rect OnEditReferencesClick(ProcessSceneReferenceBase reference, Action changeValueCallback, float dropdownHeight, Rect flyoutRect) + { + Action onItemSelected = (SceneObjectGroups.SceneObjectGroup selectedGroup) => + { + AddGroup(reference, reference.Guids, selectedGroup.Guid, changeValueCallback); + }; + + flyoutRect = SetupLocalFlyoutRect(GUILayoutUtility.GetLastRect(), dropdownHeight, flyoutRect.width); + var availableGroups = SceneObjectGroups.Instance.Groups.Where(group => !reference.Guids.Contains(group.Guid)); + DrawSearchableGroupListPopup(flyoutRect, onItemSelected, availableGroups); + return flyoutRect; + } + + private void OnShowReferencesClick(ProcessSceneReferenceBase reference, Action changeValueCallback, float dropdownHeight, Rect flyoutRect) + { + if (!reference.HasValue()) + { + if (reference.Guids.Count() > 0) + { + // we have deleted groups and want to to show them in the popup + flyoutRect = SetupLocalFlyoutRect(GUILayoutUtility.GetLastRect(), dropdownHeight, flyoutRect.width); + DrawSceneReferencesEditorPopup(reference, changeValueCallback, flyoutRect); + } + } + else if (reference.Guids.Count() == 1 && !SceneObjectGroups.Instance.GroupExists(reference.Guids.First())) + { + // we have only one guid and it is a PSO so we want to ping the object + IEnumerable processSceneObjectsWithGroup = RuntimeConfigurator.Configuration.SceneObjectRegistry.GetObjects(reference.Guids.First()); + EditorGUIUtility.PingObject(processSceneObjectsWithGroup.First().GameObject); + } + else + { + flyoutRect = SetupLocalFlyoutRect(GUILayoutUtility.GetLastRect(), dropdownHeight, flyoutRect.width); + DrawSceneReferencesEditorPopup(reference, changeValueCallback, flyoutRect); + } + } + + private Rect SetupLocalFlyoutRect(Rect lastRect, float dropdownHeight, float flyoutRectWidth) + { + Rect editGroupDropdownRect = lastRect; + editGroupDropdownRect.width = flyoutRectWidth; + editGroupDropdownRect.y += dropdownHeight; + return editGroupDropdownRect; + } + + private void DrawSceneReferencesEditorPopup(ProcessSceneReferenceBase reference, Action changeValueCallback, Rect flyoutRect) + { + SceneReferencesEditorPopup sceneReferencesEditorPopup = new SceneReferencesEditorPopup(reference, changeValueCallback); + sceneReferencesEditorPopup.SetWindowSize(windowWith: flyoutRect.width); + + UnityEditor.PopupWindow.Show(flyoutRect, sceneReferencesEditorPopup); + } + + private string GetTooltip(ProcessSceneReferenceBase reference) + { + if (reference.IsEmpty()) + { + return "No objects referenced"; + } + + StringBuilder tooltip = new StringBuilder("Objects in scene:"); + + foreach (Guid guid in reference.Guids) + { + if (SceneObjectGroups.Instance.GroupExists(guid)) + { + string label = SceneObjectGroups.Instance.GetLabel(guid); + int objectsInScene = RuntimeConfigurator.Configuration.SceneObjectRegistry.GetObjects(guid).Count(); + tooltip.Append($"\n- Group '{SceneObjectGroups.Instance.GetLabel(guid)}': {objectsInScene} objects"); + } + else + { + foreach (ISceneObject sceneObject in RuntimeConfigurator.Configuration.SceneObjectRegistry.GetObjects(guid)) + { + tooltip.Append($"\n- {sceneObject.GameObject.name}"); + } + } + } + + return tooltip.ToString(); + } + + private int CalculateContentLines(GUIContent content, Rect originalRect, GUIStyle style, int totalButtonsWidth) + { + Vector2 size = style.CalcSize(content); + int lines = Mathf.CeilToInt(size.x / (originalRect.width - totalButtonsWidth)); + return lines; + } + + + protected Guid OpenMissingProcessSceneObjectDialog(GameObject selectedSceneObject) + { + Guid guid = Guid.Empty; + + if (selectedSceneObject != null) + { + if (EditorUtility.DisplayDialog("No Process Scene Object component", "This object does not have a Process Scene Object component.\n" + + "A Process Scene Object component is required for the object to work with the VR Builder process.\n" + + "Do you want to add one now?", "Yes", "No")) + { + guid = selectedSceneObject.AddComponent().Guid; + EditorUtility.SetDirty(selectedSceneObject); + } + } + return guid; + } + + // TODO Has duplicated code with AddFixItButton. Should be refactored if we keep FixItButton + // TODO Undo does not work properly here and on AddFixItButton e.g.: a GrabCondition its only removing The GrabbableProperty but not TouchableProperty, IntractableProperty and Rigidbody + protected void AddFixItAllButton(IEnumerable selectedSceneObject, Type valueType, ref Rect originalRect, ref Rect guiLineRect) + { + string warning = $"Some Scene Objects are not configured as {valueType.Name}"; + const string button = "Fix all"; + EditorGUI.HelpBox(guiLineRect, warning, MessageType.Warning); + guiLineRect = AddNewRectLine(ref originalRect); + + if (GUI.Button(guiLineRect, button)) + { + foreach (GameObject sceneObject in selectedSceneObject) + { + // Only relevant for Undoing a Process Property. + bool isAlreadySceneObject = sceneObject.GetComponent() != null && typeof(ISceneObjectProperty).IsAssignableFrom(valueType); + Component[] alreadyAttachedProperties = sceneObject.GetComponents(typeof(Component)); + + RevertableChangesHandler.Do( + new ProcessCommand( + () => SceneObjectAutomaticSetup(sceneObject, valueType), + () => UndoSceneObjectAutomaticSetup(sceneObject, valueType, isAlreadySceneObject, alreadyAttachedProperties))); + } + } + guiLineRect = AddNewRectLine(ref originalRect); + } + + protected void AddFixItButton(GameObject selectedSceneObject, Type valueType, ref Rect originalRect, ref Rect guiLineRect) + { + guiLineRect = AddNewRectLine(ref originalRect); + + string warning = $"{selectedSceneObject.name} is not configured as {valueType.Name}"; + const string button = "Fix it"; + EditorGUI.HelpBox(guiLineRect, warning, MessageType.Warning); + guiLineRect = AddNewRectLine(ref originalRect); + + if (GUI.Button(guiLineRect, button)) + { + // Only relevant for Undoing a Process Property. + bool isAlreadySceneObject = selectedSceneObject.GetComponent() != null && typeof(ISceneObjectProperty).IsAssignableFrom(valueType); + Component[] alreadyAttachedProperties = selectedSceneObject.GetComponents(typeof(Component)); + + RevertableChangesHandler.Do( + new ProcessCommand( + () => SceneObjectAutomaticSetup(selectedSceneObject, valueType), + () => UndoSceneObjectAutomaticSetup(selectedSceneObject, valueType, isAlreadySceneObject, alreadyAttachedProperties))); + } + } + + // ToDo suggesting to move this in to a helper class + protected Rect AddNewRectLine(ref Rect currentRect, float height = float.MinValue) + { + Rect newRectLine = currentRect; + newRectLine.height = height == float.MinValue ? EditorDrawingHelper.SingleLineHeight : height; + newRectLine.y += currentRect.height + EditorDrawingHelper.VerticalSpacing; + + currentRect.height += height == float.MinValue ? EditorDrawingHelper.SingleLineHeight + EditorDrawingHelper.VerticalSpacing : height + EditorDrawingHelper.VerticalSpacing; + return newRectLine; + } + + // ToDo suggesting to move this in to a helper class + protected void SceneObjectAutomaticSetup(GameObject selectedSceneObject, Type valueType) + { + ISceneObject sceneObject = selectedSceneObject.GetComponent() ?? selectedSceneObject.AddComponent(); + + if (typeof(ISceneObjectProperty).IsAssignableFrom(valueType)) + { + sceneObject.AddProcessProperty(valueType); + } + + isUndoOperation = true; + } + + private void SetNewGroups(ProcessSceneReferenceBase reference, IEnumerable oldGuids, IEnumerable newGuids, Action changeValueCallback) + { + if (new HashSet(oldGuids).SetEquals(newGuids)) + { + return; + } + ChangeValue( + () => + { + reference.ResetGuids(newGuids); + return reference; + }, + () => + { + reference.ResetGuids(oldGuids); + return reference; + }, + changeValueCallback); + } + + private void SetNewGroup(ProcessSceneReferenceBase reference, IEnumerable oldGuids, Guid newGuid, Action changeValueCallback) + { + if (oldGuids.Count() == 1 && oldGuids.Contains(newGuid)) + { + return; + } + ChangeValue( + () => + { + reference.ResetGuids(new List { newGuid }); + return reference; + }, + () => + { + reference.ResetGuids(oldGuids); + return reference; + }, + changeValueCallback); + } + + private void AddGroup(ProcessSceneReferenceBase reference, IEnumerable oldGuids, Guid newGuid, Action changeValueCallback) + { + if (oldGuids.Contains(newGuid)) + { + return; + } + + ChangeValue( + () => + { + reference.ResetGuids(oldGuids.Concat(new List { newGuid })); + return reference; + }, + () => + { + reference.ResetGuids(oldGuids); + return reference; + }, + changeValueCallback); + } + + private void DrawSearchableGroupListPopup(Rect rect, Action onItemSelected, IEnumerable availableGroups = null) + { + VisualTreeAsset searchableList = ViewDictionary.LoadAsset(ViewDictionary.EnumType.SearchableList); + VisualTreeAsset groupListItem = ViewDictionary.LoadAsset(ViewDictionary.EnumType.SearchableListItem); + + SearchableGroupListPopup content = new SearchableGroupListPopup(onItemSelected, searchableList, groupListItem); + + if (availableGroups == null) + { + availableGroups = SceneObjectGroups.Instance.Groups; + } + + content.SetAvailableGroups(availableGroups); + content.SetWindowSize(windowWith: rect.width); + + UnityEditor.PopupWindow.Show(rect, content); + } + + private void UndoSceneObjectAutomaticSetup(GameObject selectedSceneObject, Type valueType, bool hadProcessComponent, Component[] alreadyAttachedProperties) + { + ISceneObject sceneObject = selectedSceneObject.GetComponent(); + + if (typeof(ISceneObjectProperty).IsAssignableFrom(valueType)) + { + sceneObject.RemoveProcessProperty(valueType, true, alreadyAttachedProperties); + } + + if (hadProcessComponent == false) + { + UnityEngine.Object.DestroyImmediate((ProcessSceneObject)sceneObject); + } + + isUndoOperation = true; + } + + /// + /// Initializes the rich text label style. + /// + /// + /// GUIStyle can only be used within OnGUI() and not in a constructor. + /// + private void InitializeRichTextLabelStyle() + { + if (richTextLabelStyle == null) + { + // Note: + richTextLabelStyle = new GUIStyle(GUI.skin.label) + { + richText = true + }; + } + } + } +} diff --git a/Source/Core/Editor/UI/Drawers/ProcessSceneReferenceDrawer.cs.meta b/Source/Core/Editor/UI/Drawers/ProcessSceneReferenceDrawer.cs.meta new file mode 100644 index 000000000..c437eecb6 --- /dev/null +++ b/Source/Core/Editor/UI/Drawers/ProcessSceneReferenceDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dffa2779408093e479275a335a196d68 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/UI/Drawers/ProcessVariableBoolSelectableValueDrawer.cs b/Source/Core/Editor/UI/Drawers/ProcessVariableBoolSelectableValueDrawer.cs new file mode 100644 index 000000000..311607e84 --- /dev/null +++ b/Source/Core/Editor/UI/Drawers/ProcessVariableBoolSelectableValueDrawer.cs @@ -0,0 +1,13 @@ +using VRBuilder.Core.Properties; +using VRBuilder.Core.SceneObjects; + +namespace VRBuilder.Editor.UI.Drawers +{ + /// + /// Concrete implementation of process variable selectable value drawer. + /// + [DefaultProcessDrawer(typeof(ProcessVariableSelectableValue))] + public class ProcessVariableBoolSelectableValueDrawer : SelectableValueDrawer>> + { + } +} diff --git a/Source/Core/Editor/UI/Drawers/ProcessVariableBoolSelectableValueDrawer.cs.meta b/Source/Core/Editor/UI/Drawers/ProcessVariableBoolSelectableValueDrawer.cs.meta new file mode 100644 index 000000000..cdce494cd --- /dev/null +++ b/Source/Core/Editor/UI/Drawers/ProcessVariableBoolSelectableValueDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 31b0a7bbc3ad06545a3c7765323ea5a0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/UI/Drawers/ProcessVariableFloatSelectableValueDrawer.cs b/Source/Core/Editor/UI/Drawers/ProcessVariableFloatSelectableValueDrawer.cs new file mode 100644 index 000000000..36bfb93e2 --- /dev/null +++ b/Source/Core/Editor/UI/Drawers/ProcessVariableFloatSelectableValueDrawer.cs @@ -0,0 +1,13 @@ +using VRBuilder.Core.Properties; +using VRBuilder.Core.SceneObjects; + +namespace VRBuilder.Editor.UI.Drawers +{ + /// + /// Concrete implementation of process variable selectable value drawer. + /// + [DefaultProcessDrawer(typeof(ProcessVariableSelectableValue))] + public class ProcessVariableFloatSelectableValueDrawer : SelectableValueDrawer>> + { + } +} diff --git a/Source/Core/Editor/UI/Drawers/ProcessVariableFloatSelectableValueDrawer.cs.meta b/Source/Core/Editor/UI/Drawers/ProcessVariableFloatSelectableValueDrawer.cs.meta new file mode 100644 index 000000000..d65fb7f78 --- /dev/null +++ b/Source/Core/Editor/UI/Drawers/ProcessVariableFloatSelectableValueDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 64875a52b71bd3d4d972591372c0a08e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/UI/Drawers/ProcessVariableStringSelectableValueDrawer.cs b/Source/Core/Editor/UI/Drawers/ProcessVariableStringSelectableValueDrawer.cs new file mode 100644 index 000000000..1fe9895a8 --- /dev/null +++ b/Source/Core/Editor/UI/Drawers/ProcessVariableStringSelectableValueDrawer.cs @@ -0,0 +1,13 @@ +using VRBuilder.Core.Properties; +using VRBuilder.Core.SceneObjects; + +namespace VRBuilder.Editor.UI.Drawers +{ + /// + /// Concrete implementation of process variable selectable value drawer. + /// + [DefaultProcessDrawer(typeof(ProcessVariableSelectableValue))] + public class ProcessVariableStringSelectableValueDrawer : SelectableValueDrawer>> + { + } +} diff --git a/Source/Core/Editor/UI/Drawers/ProcessVariableStringSelectableValueDrawer.cs.meta b/Source/Core/Editor/UI/Drawers/ProcessVariableStringSelectableValueDrawer.cs.meta new file mode 100644 index 000000000..d2116eef9 --- /dev/null +++ b/Source/Core/Editor/UI/Drawers/ProcessVariableStringSelectableValueDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6b9c1c2b2b069414a9720ec3688e3619 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/UI/Drawers/SceneObjectTagDrawer.cs b/Source/Core/Editor/UI/Drawers/SceneObjectTagDrawer.cs index 5ab478327..ec441a02b 100644 --- a/Source/Core/Editor/UI/Drawers/SceneObjectTagDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/SceneObjectTagDrawer.cs @@ -15,6 +15,7 @@ namespace VRBuilder.Editor.UI.Drawers /// Drawer for . /// [DefaultProcessDrawer(typeof(SceneObjectTagBase))] + [Obsolete("This drawer is obsolete and will be removed in the next major version.")] public class SceneObjectTagDrawer : AbstractDrawer { private const string noComponentSelected = ""; @@ -24,14 +25,14 @@ public override Rect Draw(Rect rect, object currentValue, Action changeV { SceneObjectTagBase sceneObjectTag = (SceneObjectTagBase)currentValue; Guid oldGuid = sceneObjectTag.Guid; - SceneObjectTags.Tag[] tags = SceneObjectTags.Instance.Tags.ToArray(); + SceneObjectGroups.SceneObjectGroup[] tags = SceneObjectGroups.Instance.Groups.ToArray(); List labels = tags.Select(tag => tag.Label).ToList(); - SceneObjectTags.Tag currentTag = tags.FirstOrDefault(tag => tag.Guid == oldGuid); + SceneObjectGroups.SceneObjectGroup currentTag = tags.FirstOrDefault(tag => tag.Guid == oldGuid); Rect guiLineRect = rect; if (currentTag != null) { - foreach (ISceneObject sceneObject in RuntimeConfigurator.Configuration.SceneObjectRegistry.GetByTag(currentTag.Guid)) + foreach (ISceneObject sceneObject in RuntimeConfigurator.Configuration.SceneObjectRegistry.GetObjects(currentTag.Guid)) { CheckForMisconfigurationIssues(sceneObject.GameObject, sceneObjectTag.GetReferenceType(), ref rect, ref guiLineRect); } @@ -42,7 +43,7 @@ public override Rect Draw(Rect rect, object currentValue, Action changeV int selectedTagIndex = Array.IndexOf(tags, currentTag); bool isTagInvalid = false; - if(selectedTagIndex == -1) + if (selectedTagIndex == -1) { selectedTagIndex = 0; labels.Insert(0, noComponentSelected); @@ -52,7 +53,7 @@ public override Rect Draw(Rect rect, object currentValue, Action changeV selectedTagIndex = EditorGUI.Popup(guiLineRect, label.text, selectedTagIndex, labels.ToArray()); EditorGUI.EndDisabledGroup(); - if(isTagInvalid && selectedTagIndex == 0) + if (isTagInvalid && selectedTagIndex == 0) { return rect; } @@ -121,12 +122,6 @@ protected void SceneObjectAutomaticSetup(GameObject selectedSceneObject, Type va { ISceneObject sceneObject = selectedSceneObject.GetComponent() ?? selectedSceneObject.AddComponent(); - if (RuntimeConfigurator.Configuration.SceneObjectRegistry.ContainsGuid(sceneObject.Guid) == false) - { - // Sets a UniqueName and then registers it. - sceneObject.SetSuitableName(); - } - if (typeof(ISceneObjectProperty).IsAssignableFrom(valueType)) { sceneObject.AddProcessProperty(valueType); diff --git a/Source/Core/Editor/UI/Drawers/SelectableValueDrawer.cs b/Source/Core/Editor/UI/Drawers/SelectableValueDrawer.cs index ca8b13cc8..81603ff77 100644 --- a/Source/Core/Editor/UI/Drawers/SelectableValueDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/SelectableValueDrawer.cs @@ -41,12 +41,20 @@ public override Rect Draw(Rect rect, object currentValue, Action changeV if (selectableValue.IsFirstValueSelected) { MemberInfo firstMemberInfo = selectableValue.GetType().GetMember(nameof(selectableValue.FirstValue)).First(); - rect.height += DrawerLocator.GetDrawerForMember(firstMemberInfo, selectableValue).Draw(rect, selectableValue.FirstValue, (value) => ChangeValue(() => value, () => selectableValue.FirstValue, (newValue) => selectableValue.FirstValue = (TFirst)newValue), label).height; + rect.height += DrawerLocator.GetDrawerForMember(firstMemberInfo, selectableValue).Draw(rect, selectableValue.FirstValue, (value) => ChangeValue(() => value, () => selectableValue.FirstValue, (newValue) => + { + selectableValue.FirstValue = (TFirst)newValue; + changeValueCallback(selectableValue); + }), label).height; } else { MemberInfo secondMemberInfo = selectableValue.GetType().GetMember(nameof(selectableValue.SecondValue)).First(); - rect.height += DrawerLocator.GetDrawerForMember(secondMemberInfo, selectableValue).Draw(rect, selectableValue.SecondValue, (value) => ChangeValue(() => value, () => selectableValue.SecondValue, (newValue) => selectableValue.SecondValue = (TSecond)newValue), label).height; + rect.height += DrawerLocator.GetDrawerForMember(secondMemberInfo, selectableValue).Draw(rect, selectableValue.SecondValue, (value) => ChangeValue(() => value, () => selectableValue.SecondValue, (newValue) => + { + selectableValue.SecondValue = (TSecond)newValue; + changeValueCallback(selectableValue); + }), label).height; } rect.height += EditorDrawingHelper.VerticalSpacing; diff --git a/Source/Core/Editor/UI/Drawers/StepDrawer.cs b/Source/Core/Editor/UI/Drawers/StepDrawer.cs index ad4e9e095..c0733b671 100644 --- a/Source/Core/Editor/UI/Drawers/StepDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/StepDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using VRBuilder.Core; diff --git a/Source/Core/Editor/UI/Drawers/StringDrawer.cs b/Source/Core/Editor/UI/Drawers/StringDrawer.cs index 72ee86862..3c0f97a5e 100644 --- a/Source/Core/Editor/UI/Drawers/StringDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/StringDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using UnityEditor; diff --git a/Source/Core/Editor/UI/Drawers/SystemColorDrawer.cs b/Source/Core/Editor/UI/Drawers/SystemColorDrawer.cs index f50bdf7d9..943e43353 100644 --- a/Source/Core/Editor/UI/Drawers/SystemColorDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/SystemColorDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using UnityEditor; diff --git a/Source/Core/Editor/UI/Drawers/TabsGroupDrawer.cs b/Source/Core/Editor/UI/Drawers/TabsGroupDrawer.cs index 0ea978382..086393a6e 100644 --- a/Source/Core/Editor/UI/Drawers/TabsGroupDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/TabsGroupDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Linq; diff --git a/Source/Core/Editor/UI/Drawers/TransitionCollectionDrawer.cs b/Source/Core/Editor/UI/Drawers/TransitionCollectionDrawer.cs index 3b13abe2b..ce2abce3d 100644 --- a/Source/Core/Editor/UI/Drawers/TransitionCollectionDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/TransitionCollectionDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Reflection; diff --git a/Source/Core/Editor/UI/Drawers/TransitionDrawer.cs b/Source/Core/Editor/UI/Drawers/TransitionDrawer.cs index b229123bc..6ab25674f 100644 --- a/Source/Core/Editor/UI/Drawers/TransitionDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/TransitionDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Linq; diff --git a/Source/Core/Editor/UI/Drawers/TransitionInstantiatiorDrawer.cs b/Source/Core/Editor/UI/Drawers/TransitionInstantiatiorDrawer.cs index 7a9e80dc5..1f5c5284a 100644 --- a/Source/Core/Editor/UI/Drawers/TransitionInstantiatiorDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/TransitionInstantiatiorDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using VRBuilder.Core; diff --git a/Source/Core/Editor/UI/Drawers/UniqueNameReferenceDrawer.cs b/Source/Core/Editor/UI/Drawers/UniqueNameReferenceDrawer.cs index 6746fa843..9f911ea56 100644 --- a/Source/Core/Editor/UI/Drawers/UniqueNameReferenceDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/UniqueNameReferenceDrawer.cs @@ -1,17 +1,17 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; -using System.Reflection; using System.Collections.Generic; +using System.Reflection; +using UnityEditor; +using UnityEngine; using VRBuilder.Core.Configuration; -using VRBuilder.Core.SceneObjects; using VRBuilder.Core.Properties; +using VRBuilder.Core.SceneObjects; using VRBuilder.Core.Utils; using VRBuilder.Editor.UndoRedo; -using UnityEditor; -using UnityEngine; using Object = UnityEngine.Object; namespace VRBuilder.Editor.UI.Drawers @@ -19,6 +19,7 @@ namespace VRBuilder.Editor.UI.Drawers /// /// Process drawer for members. /// + [Obsolete("This drawer is obsolete and will be removed in the next major version.")] [DefaultProcessDrawer(typeof(UniqueNameReference))] public class UniqueNameReferenceDrawer : AbstractDrawer { @@ -190,8 +191,8 @@ protected void CheckForMisconfigurationIssues(GameObject selectedSceneObject, Ty RevertableChangesHandler.Do( new ProcessCommand( - ()=> SceneObjectAutomaticSetup(selectedSceneObject, valueType), - ()=> UndoSceneObjectAutomaticSetup(selectedSceneObject, valueType, isAlreadySceneObject, alreadyAttachedProperties)), + () => SceneObjectAutomaticSetup(selectedSceneObject, valueType), + () => UndoSceneObjectAutomaticSetup(selectedSceneObject, valueType, isAlreadySceneObject, alreadyAttachedProperties)), undoGroupName); } @@ -228,7 +229,7 @@ private void UndoSceneObjectAutomaticSetup(GameObject selectedSceneObject, Type if (hadProcessComponent == false) { - Object.DestroyImmediate((ProcessSceneObject) sceneObject); + Object.DestroyImmediate((ProcessSceneObject)sceneObject); } isUndoOperation = true; diff --git a/Source/Core/Editor/UI/Drawers/UnityColor32Drawer.cs b/Source/Core/Editor/UI/Drawers/UnityColor32Drawer.cs index 2c3e8ed67..0a74f3435 100644 --- a/Source/Core/Editor/UI/Drawers/UnityColor32Drawer.cs +++ b/Source/Core/Editor/UI/Drawers/UnityColor32Drawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using UnityEditor; diff --git a/Source/Core/Editor/UI/Drawers/UnityColorDrawer.cs b/Source/Core/Editor/UI/Drawers/UnityColorDrawer.cs index 80d63a007..1373d6108 100644 --- a/Source/Core/Editor/UI/Drawers/UnityColorDrawer.cs +++ b/Source/Core/Editor/UI/Drawers/UnityColorDrawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using UnityEditor; diff --git a/Source/Core/Editor/UI/Drawers/UserTagDropdownDrawer.cs b/Source/Core/Editor/UI/Drawers/UserTagDropdownDrawer.cs new file mode 100644 index 000000000..f42cf7a9a --- /dev/null +++ b/Source/Core/Editor/UI/Drawers/UserTagDropdownDrawer.cs @@ -0,0 +1,149 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; +using VRBuilder.Core.Configuration; +using VRBuilder.Core.Properties; +using VRBuilder.Core.SceneObjects; +using VRBuilder.Core.Settings; +using VRBuilder.Editor.UndoRedo; + +namespace VRBuilder.Editor.UI.Drawers +{ + /// + /// Drawer for . + /// + [Obsolete("This drawer is obsolete and will be removed in the next major version.")] + public class UserTagDropdownDrawer : AbstractDrawer + { + private const string noComponentSelected = ""; + protected bool isUndoOperation; + + public override Rect Draw(Rect rect, object currentValue, Action changeValueCallback, GUIContent label) + { + SceneObjectTagBase sceneObjectTag = (SceneObjectTagBase)currentValue; + Guid oldGuid = sceneObjectTag.Guid; + SceneObjectGroups.SceneObjectGroup[] tags = SceneObjectGroups.Instance.Groups.ToArray(); + List labels = tags.Select(tag => tag.Label).ToList(); + SceneObjectGroups.SceneObjectGroup currentTag = tags.FirstOrDefault(tag => tag.Guid == oldGuid); + Rect guiLineRect = rect; + + if (currentTag != null) + { + foreach (ISceneObject sceneObject in RuntimeConfigurator.Configuration.SceneObjectRegistry.GetObjects(currentTag.Guid)) + { + CheckForMisconfigurationIssues(sceneObject.GameObject, sceneObjectTag.GetReferenceType(), ref rect, ref guiLineRect); + } + } + + EditorGUI.BeginDisabledGroup(tags.Length == 0); + + int selectedTagIndex = Array.IndexOf(tags, currentTag); + bool isTagInvalid = false; + + if (selectedTagIndex == -1) + { + selectedTagIndex = 0; + labels.Insert(0, noComponentSelected); + isTagInvalid = true; + } + + selectedTagIndex = EditorGUI.Popup(guiLineRect, label.text, selectedTagIndex, labels.ToArray()); + EditorGUI.EndDisabledGroup(); + + if (isTagInvalid && selectedTagIndex == 0) + { + return rect; + } + else if (isTagInvalid) + { + selectedTagIndex--; + } + + Guid newGuid = tags[selectedTagIndex].Guid; + + if (oldGuid != newGuid) + { + ChangeValue( + () => + { + sceneObjectTag.Guid = newGuid; + return sceneObjectTag; + }, + () => + { + sceneObjectTag.Guid = oldGuid; + return sceneObjectTag; + }, + changeValueCallback); + } + + return rect; + } + + protected void CheckForMisconfigurationIssues(GameObject selectedSceneObject, Type valueType, ref Rect originalRect, ref Rect guiLineRect) + { + if (selectedSceneObject != null && selectedSceneObject.GetComponent(valueType) == null) + { + string warning = $"{selectedSceneObject.name} is not configured as {valueType.Name}"; + const string button = "Fix it"; + EditorGUI.HelpBox(guiLineRect, warning, MessageType.Warning); + guiLineRect = AddNewRectLine(ref originalRect); + + if (GUI.Button(guiLineRect, button)) + { + // Only relevant for Undoing a Process Property. + bool isAlreadySceneObject = selectedSceneObject.GetComponent() != null && typeof(ISceneObjectProperty).IsAssignableFrom(valueType); + Component[] alreadyAttachedProperties = selectedSceneObject.GetComponents(typeof(Component)); + + RevertableChangesHandler.Do( + new ProcessCommand( + () => SceneObjectAutomaticSetup(selectedSceneObject, valueType), + () => UndoSceneObjectAutomaticSetup(selectedSceneObject, valueType, isAlreadySceneObject, alreadyAttachedProperties))); + } + + guiLineRect = AddNewRectLine(ref originalRect); + } + } + + protected Rect AddNewRectLine(ref Rect currentRect) + { + Rect newRectLine = currentRect; + newRectLine.height = EditorDrawingHelper.SingleLineHeight; + newRectLine.y += currentRect.height + EditorDrawingHelper.VerticalSpacing; + + currentRect.height += EditorDrawingHelper.SingleLineHeight + EditorDrawingHelper.VerticalSpacing; + return newRectLine; + } + + protected void SceneObjectAutomaticSetup(GameObject selectedSceneObject, Type valueType) + { + ISceneObject sceneObject = selectedSceneObject.GetComponent() ?? selectedSceneObject.AddComponent(); + + if (typeof(ISceneObjectProperty).IsAssignableFrom(valueType)) + { + sceneObject.AddProcessProperty(valueType); + } + + isUndoOperation = true; + } + + private void UndoSceneObjectAutomaticSetup(GameObject selectedSceneObject, Type valueType, bool hadProcessComponent, Component[] alreadyAttachedProperties) + { + ISceneObject sceneObject = selectedSceneObject.GetComponent(); + + if (typeof(ISceneObjectProperty).IsAssignableFrom(valueType)) + { + sceneObject.RemoveProcessProperty(valueType, true, alreadyAttachedProperties); + } + + if (hadProcessComponent == false) + { + UnityEngine.Object.DestroyImmediate((ProcessSceneObject)sceneObject); + } + + isUndoOperation = true; + } + } +} diff --git a/Source/Core/Editor/UI/Drawers/UserTagDropdownDrawer.cs.meta b/Source/Core/Editor/UI/Drawers/UserTagDropdownDrawer.cs.meta new file mode 100644 index 000000000..307daf845 --- /dev/null +++ b/Source/Core/Editor/UI/Drawers/UserTagDropdownDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: db761d8dba61edd428797feb3bc7310c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Source/Core/Editor/UI/Drawers/Vector2Drawer.cs b/Source/Core/Editor/UI/Drawers/Vector2Drawer.cs index 044c07785..c08f0001c 100644 --- a/Source/Core/Editor/UI/Drawers/Vector2Drawer.cs +++ b/Source/Core/Editor/UI/Drawers/Vector2Drawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using UnityEditor; diff --git a/Source/Core/Editor/UI/Drawers/Vector3Drawer.cs b/Source/Core/Editor/UI/Drawers/Vector3Drawer.cs index 8a752babc..a286b2df5 100644 --- a/Source/Core/Editor/UI/Drawers/Vector3Drawer.cs +++ b/Source/Core/Editor/UI/Drawers/Vector3Drawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using UnityEditor; diff --git a/Source/Core/Editor/UI/Drawers/Vector4Drawer.cs b/Source/Core/Editor/UI/Drawers/Vector4Drawer.cs index cad8ebe4e..c668cb4ef 100644 --- a/Source/Core/Editor/UI/Drawers/Vector4Drawer.cs +++ b/Source/Core/Editor/UI/Drawers/Vector4Drawer.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using UnityEditor; diff --git a/Source/Core/Editor/UI/EditorColorUtils.cs b/Source/Core/Editor/UI/EditorColorUtils.cs index 750608c4a..469fb419b 100644 --- a/Source/Core/Editor/UI/EditorColorUtils.cs +++ b/Source/Core/Editor/UI/EditorColorUtils.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.Globalization; using UnityEditor; diff --git a/Source/Core/Editor/UI/EditorDrawingHelper.cs b/Source/Core/Editor/UI/EditorDrawingHelper.cs index 5f4820f14..d60c3ed9e 100644 --- a/Source/Core/Editor/UI/EditorDrawingHelper.cs +++ b/Source/Core/Editor/UI/EditorDrawingHelper.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System.Collections.Generic; using UnityEditor; @@ -37,6 +37,14 @@ public static float SingleLineHeight } } + /// + /// Height of one button in the Step Inspector. + /// + /// + /// There isn't a constant for this in Unity. This is the same as the height of the "Add Behavior" Unity button. + /// + public static float ButtonHeight = 22f; + private static readonly EditorIcon helpIcon = new EditorIcon("icon_help"); /// /// Height of slightly bigger line in the Step Inspector. @@ -95,7 +103,7 @@ public static bool DrawHelpButton(ref Rect rect) { fontSize = 12 }; - + return GUI.Button(helpbuttonRect, helpIcon.Texture, style); } /// @@ -182,7 +190,7 @@ public static void DrawTriangle(IList points, Color color) return; } - pointList = new Vector3[] {p1, p2, p3} ; + pointList = new Vector3[] { p1, p2, p3 }; Handles.color = Color.white; Handles.DrawAAConvexPolygon(pointList); Handles.color = handlesColor; diff --git a/Source/Core/Editor/UI/EditorGraphics.cs b/Source/Core/Editor/UI/EditorGraphics.cs index b22518612..f9fd8ed00 100644 --- a/Source/Core/Editor/UI/EditorGraphics.cs +++ b/Source/Core/Editor/UI/EditorGraphics.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using System.Collections.Generic; diff --git a/Source/Core/Editor/UI/EditorIcon.cs b/Source/Core/Editor/UI/EditorIcon.cs index 0ee1cb271..411e60676 100644 --- a/Source/Core/Editor/UI/EditorIcon.cs +++ b/Source/Core/Editor/UI/EditorIcon.cs @@ -1,6 +1,6 @@ // Copyright (c) 2013-2019 Innoactive GmbH // Licensed under the Apache License, Version 2.0 -// Modifications copyright (c) 2021-2023 MindPort GmbH +// Modifications copyright (c) 2021-2024 MindPort GmbH using System; using UnityEditor; diff --git a/Source/Core/Editor/UI/GraphView/NodeInstantiators/EndChapterNodeInstantiator.cs b/Source/Core/Editor/UI/GraphView/NodeInstantiators/EndChapterNodeInstantiator.cs index d18bd7954..dd094aff1 100644 --- a/Source/Core/Editor/UI/GraphView/NodeInstantiators/EndChapterNodeInstantiator.cs +++ b/Source/Core/Editor/UI/GraphView/NodeInstantiators/EndChapterNodeInstantiator.cs @@ -9,7 +9,7 @@ namespace VRBuilder.Editor.UI.Graphics public class EndChapterNodeInstantiator : IStepNodeInstantiator { /// - public string Name => "End Chapter"; + public string Name => "Set Next Chapter"; /// public bool IsInNodeMenu => true; @@ -23,7 +23,7 @@ public class EndChapterNodeInstantiator : IStepNodeInstantiator /// public DropdownMenuAction.Status GetContextMenuStatus(IEventHandler target, IChapter currentChapter) { - if(GlobalEditorHandler.GetCurrentProcess().Data.Chapters.Contains(currentChapter)) + if (GlobalEditorHandler.GetCurrentProcess().Data.Chapters.Contains(currentChapter)) { return DropdownMenuAction.Status.Normal; } diff --git a/Source/Core/Editor/UI/GraphView/ProcessGraphNode.cs b/Source/Core/Editor/UI/GraphView/ProcessGraphNode.cs index ca34132b7..6f037fb91 100644 --- a/Source/Core/Editor/UI/GraphView/ProcessGraphNode.cs +++ b/Source/Core/Editor/UI/GraphView/ProcessGraphNode.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using UnityEditor.Experimental.GraphView; @@ -180,20 +179,6 @@ private void OnMouseDownEvent(MouseDownEvent e) } } - [Obsolete("Use GetIcon instead.")] - protected Image CreateDeleteTransitionIcon() - { - EditorIcon editorIcon = new EditorIcon("icon_delete"); - Image icon = new Image(); - icon.image = editorIcon.Texture; - icon.style.paddingBottom = 2; - icon.style.paddingLeft = 2; - icon.style.paddingRight = 2; - icon.style.paddingTop = 2; - - return icon; - } - protected Image GetIcon(string fileName) { if (iconCache.ContainsKey(fileName) == false) diff --git a/Source/Core/Editor/UI/GraphView/ProcessGraphViewWindow.cs b/Source/Core/Editor/UI/GraphView/ProcessGraphViewWindow.cs index a605214ab..d4b9302fe 100644 --- a/Source/Core/Editor/UI/GraphView/ProcessGraphViewWindow.cs +++ b/Source/Core/Editor/UI/GraphView/ProcessGraphViewWindow.cs @@ -71,14 +71,14 @@ private void OnGUI() { SetTabName(); - if(isFileChanged) + if (isFileChanged) { lock (lockObject) { isFileChanged = false; } - if (EditorUtility.DisplayDialog("Process modified", "The process file has been modified externally, do you want to reload it?\nDoing so will discard any unsaved changes to the process.", "Yes", "No")) + if (EditorUtility.DisplayDialog("Process data mismatch", "The process on disk has differences from the one in the editor, do you want to reload it?\nDoing so will discard any unsaved changes to the process.", "Load from disk", "Keep current")) { GlobalEditorHandler.SetCurrentProcess(EditorPrefs.GetString(GlobalEditorHandler.LastEditedProcessNameKey)); } @@ -88,12 +88,12 @@ private void OnGUI() private void OnDisable() { ProcessAssetManager.ExternalFileChange -= OnExternalFileChange; - GlobalEditorHandler.ProcessWindowClosed(this); + GlobalEditorHandler.ProcessWindowClosed(this); } private void OnExternalFileChange(object sender, EventArgs e) { - lock(lockObject) + lock (lockObject) { isFileChanged = true; } @@ -204,12 +204,12 @@ private void SetupChapterHierarchy(IChapter chapter) elements.ForEach(element => element.SetInteractable(true)); ChapterHierarchyElement element = new ChapterHierarchyElement(chapter, elements.Count() == 0); - + chapterHierarchy.Add(element); } else { - while(chapterHierarchy.contentContainer.childCount > index + 1) + while (chapterHierarchy.contentContainer.childCount > index + 1) { chapterHierarchy.contentContainer.RemoveAt(index + 1); } @@ -250,13 +250,13 @@ public ChapterHierarchyElement(IChapter chapter, bool isFirstElement, bool isInt public void SetInteractable(bool isInteractable) { - if(isInteractable) + if (isInteractable) { if (contentContainer.Children().Contains(chapterLabel)) { Remove(chapterLabel); } - Add(chapterButton); + Add(chapterButton); } else { @@ -264,7 +264,7 @@ public void SetInteractable(bool isInteractable) { Remove(chapterButton); } - Add(chapterLabel); + Add(chapterLabel); } } } diff --git a/Source/Core/Editor/UI/GraphView/SceneReferencesEditorPopup.cs b/Source/Core/Editor/UI/GraphView/SceneReferencesEditorPopup.cs new file mode 100644 index 000000000..c6216dc97 --- /dev/null +++ b/Source/Core/Editor/UI/GraphView/SceneReferencesEditorPopup.cs @@ -0,0 +1,159 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; +using UnityEngine.UIElements; +using VRBuilder.Core.Configuration; +using VRBuilder.Core.SceneObjects; +using VRBuilder.Core.Settings; +using VRBuilder.Editor.UI.Views; + +namespace VRBuilder.Editor.UI.Windows +{ + public class SceneReferencesEditorPopup : PopupWindowContent + { + private ProcessSceneReferenceBase reference; + + private Action changeValueCallback; + + /// + /// The size of the popup window. + /// + private Vector2 windowSize; + + /// + /// The minimum size of the popup window. + /// + private Vector2 minWindowSize = new Vector2(200, 200); + + public SceneReferencesEditorPopup(ProcessSceneReferenceBase reference, Action changeValueCallback) + { + this.reference = reference; + this.changeValueCallback = changeValueCallback; + } + + public override void OnGUI(Rect rect) + { + // intentionally left blank + } + + public override void OnOpen() + { + // Load the UXML + VisualTreeAsset sceneReferencesList = ViewDictionary.LoadAsset(ViewDictionary.EnumType.SceneReferencesList); + VisualTreeAsset sceneReferencesGroupItem = ViewDictionary.LoadAsset(ViewDictionary.EnumType.SceneReferencesGroupItem); + VisualTreeAsset sceneReferencesObjectItem = ViewDictionary.LoadAsset(ViewDictionary.EnumType.SceneReferencesObjectItem); + + sceneReferencesList.CloneTree(editorWindow.rootVisualElement); + VisualElement rootElement = editorWindow.rootVisualElement; + AilingStyleToUnitySkin(rootElement); + + ScrollView scrollView = rootElement.Q("ScrollView"); + foreach (Guid guidToDisplay in reference.Guids) + { + VisualElement objectContainer = AddGroup(guidToDisplay, scrollView, sceneReferencesGroupItem, changeValueCallback); + + IEnumerable processSceneObjectsWithGroup = RuntimeConfigurator.Configuration.SceneObjectRegistry.GetObjects(guidToDisplay); + foreach (ISceneObject sceneObject in processSceneObjectsWithGroup) + { + AddProcessSeneObject(sceneReferencesObjectItem, objectContainer, sceneObject); + } + } + } + + /// + /// Set the with and or height of the window. + /// If the given value is smaller than the minimum size, the minimum size will be used. + /// + /// + /// + public void SetWindowSize(float windowWith = -1, float windowHeight = -1) + { + windowSize = new Vector2(windowWith > minWindowSize.x ? windowWith : minWindowSize.x, windowHeight > minWindowSize.y ? windowHeight : minWindowSize.y); + } + + public override Vector2 GetWindowSize() + { + return windowSize; + } + + private VisualElement AddGroup(Guid guidToDisplay, ScrollView scrollView, VisualTreeAsset sceneReferencesGroupItem, Action changeValueCallback) + { + string label; + bool groupExists = true; + + SceneObjectGroups.SceneObjectGroup group; + if (SceneObjectGroups.Instance.TryGetGroup(guidToDisplay, out group)) + { + label = $"Group: {group.Label}"; + } + else + { + label = SceneObjectGroups.UniqueGuidName; + } + + ISceneObjectRegistry registry = RuntimeConfigurator.Configuration.SceneObjectRegistry; + if (registry.ContainsGuid(guidToDisplay) == false && group == null) + { + label = $"{SceneObjectGroups.GuidNotRegisteredText} - {guidToDisplay}."; + groupExists = false; + } + + VisualElement groupItem = sceneReferencesGroupItem.CloneTree(); + groupItem.Q